/* for extra features should include this */

.vimeo,
.youtube {
    position: relative;
    cursor: pointer;
    display: table;
    width: 100%;
    text-align: center;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    background-color: black;
    overflow: hidden;
}
/* youtube always use 16:9 aspect ratio video */
.youtube {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%;
}
.vimeo img {
    width: 100%;
    object-fit: contain;
    z-index: 0;
}
.youtube img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
}
.vimeo iframe,
.youtube iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    vertical-align: middle;
    z-index: 1;
}
.vimeo .icon,
.youtube .icon {
    position: absolute;
    height: auto;
    width: auto;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: white;
    opacity: 0.3;
    -webkit-transition: opacity 0.2s; /* Safari */
    transition: opacity 0.2s;
    z-index: 0;
}
.vimeo:hover .icon,
.youtube:hover .icon {
    opacity: 0.6;
    -webkit-transition: opacity 0.2s; /* Safari */
    transition: opacity 0.2s;
}
iframe.github-gist-frame {
    width: 100%;
    border: none;
    height: 32rem;
}

.slideshare .inner,
.speakerdeck .inner {
    position: relative;
    width: 100%;
}
.slideshare .inner iframe,
.speakerdeck .inner iframe {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 100%;
}

.MJX_Assistive_MathML {
    display: none;
}

.ui-infobar {
    position: relative;
    z-index: 2;
    max-width: 758px;
    margin-top: 25px;
    margin-bottom: -25px;
    color: #777;
}

.toc .invisable-node {
  list-style-type: none;
}

.ui-toc {
    position: fixed;
    bottom: 20px;
    z-index: 10000;
}

.ui-toc-label {
    opacity: 0.3;
    background-color: #ccc;
    border: none;
    -webkit-transition: opacity 0.2s; /* Safari */
    transition: opacity 0.2s;
}

.ui-toc .open .ui-toc-label {
    opacity: 1;
    color: white;
    -webkit-transition: opacity 0.2s; /* Safari */
    transition: opacity 0.2s;
}

.ui-toc-label:focus {
    opacity: 0.3;
    background-color: #ccc;
    color: black;
}

.ui-toc-label:hover {
    opacity: 1;
    background-color: #ccc;
    -webkit-transition: opacity 0.2s; /* Safari */
    transition: opacity 0.2s;
}

.ui-toc-dropdown {
    margin-top: 23px;
    margin-bottom: 20px;
    padding-left: 10px;
    padding-right: 10px;
    max-width: 45vw;
    width: 25vw;
    max-height: 70vh;
    overflow: auto;
    text-align: inherit;
}

.ui-toc-dropdown > .toc {
    max-height: calc(70vh - 100px);
    overflow: auto;
}

.ui-toc-dropdown[dir='rtl'] .nav {
    padding-right: 0;
    letter-spacing: 0.0029em;
}

.ui-toc-dropdown a {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: pre;
}

.ui-toc-dropdown .nav>li>a {
    display: block;
    padding: 4px 20px;
    font-size: 13px;
    font-weight: 500;
    color: #767676;
}

.ui-toc-dropdown .toc.expand ul {
    display: block;
}

.ui-toc-dropdown .nav > li:first-child:nth-last-child(1) > ul {
    display: block;
}

.ui-toc-dropdown .nav>li>a:focus,.ui-toc-dropdown .nav>li>a:hover {
    padding-left: 19px;
    color: black;
    text-decoration: none;
    background-color: transparent;
    border-left: 1px solid black;
}

.night .ui-toc-dropdown .nav>li>a:focus, .night .ui-toc-dropdown .nav>li>a:hover{
    color: white;
    border-left-color: white;
}

.ui-toc-dropdown[dir='rtl'] .nav>li>a:focus,.ui-toc-dropdown[dir='rtl'] .nav>li>a:hover {
    padding-right: 19px;
    border-left: none;
    border-right: 1px solid black;
}

.ui-toc-dropdown .nav>.active:focus>a,.ui-toc-dropdown .nav>.active:hover>a,.ui-toc-dropdown .nav>.active>a {
    padding-left: 18px;
    font-weight: 700;
    color: black;
    background-color: transparent;
    border-left: 2px solid black;
}
.night .ui-toc-dropdown .nav>.active:focus>a,.night .ui-toc-dropdown .nav>.active:hover>a,.night .ui-toc-dropdown .nav>.active>a {
    color: white;
    border-left: 2px solid white;
}

.ui-toc-dropdown[dir='rtl'] .nav>.active:focus>a,.ui-toc-dropdown[dir='rtl'] .nav>.active:hover>a,.ui-toc-dropdown[dir='rtl'] .nav>.active>a {
    padding-right: 18px;
    border-left: none;
    border-right: 2px solid black;
}

.ui-toc-dropdown .nav .nav {
    display: none;
    padding-bottom: 10px;
}

.ui-toc-dropdown .nav>.active>ul {
    display: block;
}

.ui-toc-dropdown .nav .nav>li>a {
    padding-top: 1px;
    padding-bottom: 1px;
    padding-left: 30px;
    font-size: 12px;
    font-weight: 400;
}

.night .ui-toc-dropdown .nav > li > a{
    color: #aaa;
}

.ui-toc-dropdown[dir='rtl'] .nav .nav>li>a {
    padding-right: 30px;
}

.ui-toc-dropdown .nav .nav>li>ul>li>a {
    padding-top: 1px;
    padding-bottom: 1px;
    padding-left: 40px;
    font-size: 12px;
    font-weight: 400;
}

.ui-toc-dropdown[dir='rtl'] .nav .nav>li>ul>li>a {
    padding-right: 40px;
}

.ui-toc-dropdown .nav .nav>li>a:focus,.ui-toc-dropdown .nav .nav>li>a:hover {
    padding-left: 29px;
}

.ui-toc-dropdown[dir='rtl'] .nav .nav>li>a:focus,.ui-toc-dropdown[dir='rtl'] .nav .nav>li>a:hover {
    padding-right: 29px;
}

.ui-toc-dropdown .nav .nav>li>ul>li>a:focus,.ui-toc-dropdown .nav .nav>li>ul>li>a:hover {
    padding-left: 39px;
}

.ui-toc-dropdown[dir='rtl'] .nav .nav>li>ul>li>a:focus,.ui-toc-dropdown[dir='rtl'] .nav .nav>li>ul>li>a:hover {
    padding-right: 39px;
}

.ui-toc-dropdown .nav .nav>.active:focus>a,.ui-toc-dropdown .nav .nav>.active:hover>a,.ui-toc-dropdown .nav .nav>.active>a {
    padding-left: 28px;
    font-weight: 500;
}

.ui-toc-dropdown[dir='rtl'] .nav .nav>.active:focus>a,.ui-toc-dropdown[dir='rtl'] .nav .nav>.active:hover>a,.ui-toc-dropdown[dir='rtl'] .nav .nav>.active>a {
    padding-right: 28px;
}

.ui-toc-dropdown .nav .nav>.active>.nav>.active:focus>a,.ui-toc-dropdown .nav .nav>.active>.nav>.active:hover>a,.ui-toc-dropdown .nav .nav>.active>.nav>.active>a {
    padding-left: 38px;
    font-weight: 500;
}

.ui-toc-dropdown[dir='rtl'] .nav .nav>.active>.nav>.active:focus>a,.ui-toc-dropdown[dir='rtl'] .nav .nav>.active>.nav>.active:hover>a,.ui-toc-dropdown[dir='rtl'] .nav .nav>.active>.nav>.active>a {
    padding-right: 38px;
}

/* support japanese font */
.markdown-body[lang^="ja"] {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", Osaka, Meiryo, "メイリオ", "MS Gothic", "ＭＳ ゴシック", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
.ui-toc-dropdown[lang^="ja"] {
    font-family: "Source Sans Pro", Helvetica, Arial, "Meiryo UI", "MS PGothic", "ＭＳ Ｐゴシック", sans-serif;
}

/* support zh-tw font */
.markdown-body[lang="zh-tw"] {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, "PingFang TC", "Microsoft JhengHei", "微軟正黑", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
.ui-toc-dropdown[lang="zh-tw"] {
    font-family: "Source Sans Pro", Helvetica, Arial, "Microsoft JhengHei UI", "微軟正黑UI", sans-serif;
}

/* support zh-cn font */
.markdown-body[lang="zh-cn"] {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Microsoft YaHei", "微软雅黑", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
.ui-toc-dropdown[lang="zh-cn"] {
    font-family: "Source Sans Pro", Helvetica, Arial, "Microsoft YaHei UI", "微软雅黑UI", sans-serif;
}

.ui-affix-toc {
    position: fixed;
    top: 0;
    max-width: 15vw;
    max-height: 70vh;
    overflow: auto;
}

.expand-toggle, .back-to-top, .go-to-bottom, .toggle-critic-comments {
    display: block;
    padding: 4px 10px;
    margin-top: 10px;
    margin-left: 10px;
    font-size: 12px;
    font-weight: 500;
    color: #999;
}

.expand-toggle:hover, .expand-toggle:focus, .back-to-top:hover, .back-to-top:focus, .go-to-bottom:hover, .go-to-bottom:focus, .toggle-critic-comments:hover, .toggle-critic-comments:focus {
    color: #563d7c;
    text-decoration: none;
}

.back-to-top, .go-to-bottom, .toggle-critic-comments {
    margin-top: 0;
}

.ui-user-icon {
    width: 20px;
    height: 20px;
    display: block;
    border-radius: 3px;
    margin-top: 2px;
    margin-bottom: 2px;
    margin-right: 5px;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
}
.ui-user-icon.small {
	width: 18px;
	height: 18px;
	display: inline-block;
	vertical-align: middle;
	margin: 0 0 0.2em 0;
}

small span {
    line-height: 22px;
}

small .dropdown {
    display: inline-block;
}

small .dropdown a:focus, small .dropdown a:hover {
    text-decoration: none;
}

.unselectable {
    -moz-user-select: none;
    -khtml-user-select: none;
    -webkit-user-select: none;
    -o-user-select: none;
    user-select: none;
}

.night .navbar{
    background: #333;
    border-bottom-color: #333;
    color: #eee;
}

.night .navbar a{
    color: #eee;
}


/* Prevent linked heading from being hidden underneath navbar.
 * Example: http://localhost:3000/features#Editor-Modes would open and
 * hide the headline "Editor Modes" underneath the navbar without this CSS rule.
 */
.markdown-body h1[id]:before,
.markdown-body h2[id]:before,
.markdown-body h3[id]:before,
.markdown-body h4[id]:before,
.markdown-body h5[id]:before,
.markdown-body h6[id]:before {
  display: block;
  content: " ";
  margin-top: -55px;
  height: 55px;
  visibility: hidden;
}

@media print {
    div, table, img, pre, blockquote {
        page-break-inside: avoid !important;
    }
    a[href]:after {
        font-size: 12px !important;
    }
}

/* ======================================
   CriticMarkup Comment Rendering (Preview)
   ====================================== */

/* Inline comment pill/icon */
.critic-comment,
.critic-comment-resolved {
  display: inline-block;
  position: relative;
  margin: 0 2px;
  padding: 0 3px;
  border: 1px solid #d0a64b;
  border-radius: 3px;
  background: #fff5d6;
  color: #c08b1d;
  font-size: 0.8em;
  line-height: 1.4;
  vertical-align: middle;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}

.critic-comment:hover {
  background: #ffecb3;
  border-color: #b8912e;
}

.critic-comment.active {
  background: #ffe082;
  border-color: #b8912e;
}

.critic-comment.critic-cursor-active,
.critic-margin-bubble.critic-cursor-active,
.critic-margin-more.critic-cursor-active {
  outline: 2px solid #b8912e;
  outline-offset: 2px;
}

.critic-comment-header {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
}

.critic-comment-line {
  color: #795913;
  text-decoration: underline;
}

body.night .critic-comment-line {
  color: #e2c089;
}

/* Popover bubble (shown when .active) */
.critic-comment .critic-comment-popover,
.critic-comment-resolved .critic-comment-popover {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  transform: translateX(-50%);
  width: max-content;
  margin-top: 8px;
  padding: 8px 12px;
  min-width: 120px;
  max-width: min(340px, calc(100vw - 16px));
  background: #fff;
  border: 1px solid #d0a64b;
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  color: #333;
  font-size: 13px;
  line-height: 1.5;
  white-space: pre-wrap;
  word-wrap: break-word;
  z-index: 1050;
  text-align: left;
  cursor: default;
}

/* Arrow pointing up to the pill */
.critic-comment .critic-comment-popover::before,
.critic-comment-resolved .critic-comment-popover::before {
  content: '';
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 6px solid transparent;
  border-bottom-color: #d0a64b;
}

.critic-comment .critic-comment-popover::after,
.critic-comment-resolved .critic-comment-popover::after {
  content: '';
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 5px solid transparent;
  border-bottom-color: #fff;
}

/* Show popover when pill is active */
.critic-comment.active .critic-comment-popover,
.critic-comment-resolved.active .critic-comment-popover {
  display: block;
}

/* Hidden state — when toggle is off, hide all comment pills */
.critic-comments-hidden .critic-comment,
.critic-comments-hidden .critic-comment-resolved {
  display: none;
}

/* Resolved threads survive in the source but not the preview; this pill is the
   only way to read one back, and it stays hidden until asked for. */
.critic-comment-resolved {
  display: none;
  border-color: #b8b3a6;
  background: #f2f1ee;
  color: #7a756a;
}

.markdown-body.show-resolved-comments .critic-comment-resolved {
  display: inline-block;
}

.critic-comment-resolved:hover,
.critic-comment-resolved.active {
  background: #e6e4df;
  border-color: #9a958a;
}

/* Night mode */
body.night .critic-comment {
  border-color: #8f6b28;
  background: #2b2314;
  color: #e2c089;
}

body.night .critic-comment:hover {
  background: #3a3018;
  border-color: #a67f30;
}

body.night .critic-comment.active {
  background: #3a3018;
  border-color: #a67f30;
}

body.night .critic-comment .critic-comment-popover,
body.night .critic-comment-resolved .critic-comment-popover {
  background: #2b2314;
  border-color: #8f6b28;
  color: #d4c4a0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}

body.night .critic-comment .critic-comment-popover::before,
body.night .critic-comment-resolved .critic-comment-popover::before {
  border-bottom-color: #8f6b28;
}

body.night .critic-comment .critic-comment-popover::after,
body.night .critic-comment-resolved .critic-comment-popover::after {
  border-bottom-color: #2b2314;
}

body.night .critic-comment-resolved {
  border-color: #4a4740;
  background: #21201d;
  color: #96918a;
}

body.night .critic-comment-resolved:hover,
body.night .critic-comment-resolved.active {
  background: #2c2a26;
  border-color: #5d594f;
}

/* ======================================
   CriticMarkup Margin Side-Bubbles (Phase 2)
   ====================================== */

/* View-mode layout: reserve right margin for comment bubbles */
@media (min-width: 993px) {
  .ui-view-area.critic-margin-mode #doc.markdown-body {
    position: relative;
    padding-right: 270px;
  }

  /* Hide inline popovers in view mode — margin bubbles replace them */
  .ui-view-area.critic-margin-mode .critic-comment .critic-comment-popover {
    display: none !important;
  }
}

/* Margin container — sits inside #doc's right padding area */
.critic-margin {
  display: none;
  position: absolute;
  top: 0;
  right: 15px;
  width: 210px;
  min-height: 100%;
  pointer-events: none;
}

@media (min-width: 993px) {
  .ui-view-area.critic-margin-mode .critic-margin {
    display: block;
    pointer-events: auto;
  }
}

/* Individual margin bubble */
.critic-margin-bubble {
  position: absolute;
  width: 195px;
  padding: 8px 12px;
  background: #fff;
  border: 1px solid #d0a64b;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  color: #333;
  font-size: 13px;
  line-height: 1.5;
  white-space: pre-wrap;
  word-wrap: break-word;
  cursor: default;
}

/* "+N more" collapse pill */
.critic-margin-more {
  position: absolute;
  width: 195px;
  padding: 4px 12px;
  background: #fff5d6;
  border: 1px solid #d0a64b;
  border-radius: 12px;
  color: #c08b1d;
  font-size: 12px;
  font-weight: 500;
  text-align: center;
  cursor: pointer;
  transition: background 0.15s;
}

.critic-margin-more:hover {
  background: #ffecb3;
}

/* When expanded, show the hidden overflow bubbles */
.critic-margin-more.expanded + .critic-margin-overflow {
  display: block !important;
}

/* Hide margin when comments are toggled off */
.critic-comments-hidden .critic-margin {
  display: none !important;
}

.critic-margin-bubble.active {
  border-color: #b8912e;
  box-shadow: 0 0 0 2px rgba(208, 166, 75, 0.35);
}

/* Night mode for margin bubbles */
body.night .critic-margin-bubble {
  background: #2b2314;
  border-color: #8f6b28;
  color: #d4c4a0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

body.night .critic-margin-more {
  background: #2b2314;
  border-color: #8f6b28;
  color: #e2c089;
}

body.night .critic-margin-more:hover {
  background: #3a3018;
}

/* Print: hide margin bubbles */
@media print {
  .critic-margin {
    display: none !important;
  }
  .ui-view-area #doc.markdown-body {
    padding-right: 0 !important;
  }
}

/* CriticMarkup suggestions (preview/view) */

.critic-ins,
.critic-sub-new {
  background: rgba(70, 160, 70, 0.14);
  color: #2da44e;
  text-decoration: none;
  border-bottom: 1px solid rgba(45, 122, 45, 0.6);
}

.critic-del,
.critic-sub-old {
  background: rgba(200, 60, 60, 0.12);
  color: #cf222e;
  text-decoration: line-through;
}

.critic-sub-old {
  margin-right: 2px;
}

.critic-highlight {
  background: rgba(255, 214, 0, 0.35);
  color: inherit;
  padding: 0 1px;
}

.critic-ins,
.critic-del,
.critic-sub {
  position: relative;
  cursor: pointer;
}

/* Accept/reject popover, same bubble pattern as comment popovers */
.critic-suggest-popover {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  transform: translateX(-50%);
  width: max-content;
  margin-top: 8px;
  padding: 6px 8px;
  background: #fff;
  border: 1px solid #bbb;
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  font-size: 13px;
  line-height: 1.5;
  white-space: nowrap;
  z-index: 1050;
  cursor: default;
}

.critic-ins.active .critic-suggest-popover,
.critic-del.active .critic-suggest-popover,
.critic-sub.active .critic-suggest-popover {
  display: block;
}

.critic-suggest-popover .critic-accept,
.critic-suggest-popover .critic-reject {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  cursor: pointer;
  text-decoration: none;
}

.critic-suggest-popover .critic-accept {
  color: #2da44e;
  border: 1px solid #2da44e;
  margin-right: 6px;
}

.critic-suggest-popover .critic-reject {
  color: #cf222e;
  border: 1px solid #cf222e;
}

.critic-suggest-popover .critic-accept:hover {
  background: rgba(70, 160, 70, 0.14);
}

.critic-suggest-popover .critic-reject:hover {
  background: rgba(200, 60, 60, 0.12);
}

/* Comment-hidden toggle also hides suggestion decorations' popovers only;
   suggestion text itself stays visible (it is document content) */

body.night .critic-ins,
body.night .critic-sub-new {
  color: #7ec87e;
}

body.night .critic-del,
body.night .critic-sub-old {
  color: #e08080;
}

body.night .critic-highlight {
  background: rgba(255, 214, 0, 0.2);
}

body.night .critic-suggest-popover {
  background: #23211c;
  border-color: #555;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}

.critic-comment-author,
.critic-margin-bubble .critic-comment-author {
  display: block;
  font-weight: 600;
  font-size: 12px;
  color: #8a6d1f;
  margin-bottom: 2px;
}

body.night .critic-comment-author {
  color: #e2c089;
}

/* CriticMarkup comment threads */

.critic-comment-count {
  margin-left: 3px;
  font-weight: 600;
  font-size: 0.9em;
}

.critic-comment-message {
  display: block;
}

.critic-comment-message + .critic-comment-message {
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid #eee2c0;
}

.critic-reply-form {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
  align-items: center;
  margin-top: 8px;
}

/* New-comment form floated at the editor cursor via cm.addWidget */
.critic-comment-form {
  width: 320px;
  /* addWidget positions in the CodeMirror sizer, which is narrower than the
     form in split mode */
  max-width: 100%;
  margin-top: 0;
  padding: 8px;
  background: #fff;
  border: 1px solid #d0a64b;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  z-index: 10;
}

/* Sits in the strip the textarea's margin clears; addWidget's inline
   position: absolute makes the form the containing block. */
.critic-comment-close {
  position: absolute;
  top: 1px;
  right: 6px;
  color: #8a6d1f;
  cursor: pointer;
  text-decoration: none;
  font-size: 14px;
  line-height: 1;
}

.critic-comment-close:hover {
  color: #8a6d1f;
  text-decoration: none;
}

.critic-comment-form .critic-reply-input {
  margin-top: 10px;
}

.critic-reply-input {
  flex: 1 1 100%;
  min-width: 0;
  /* autogrow() in extra.js caps the grown height at the same 180px */
  max-height: 180px;
  overflow-y: auto;
  padding: 4px 8px;
  border: 1px solid #d8cfae;
  border-radius: 4px;
  background: #fff;
  color: #333;
  font: inherit;
  font-size: 12px;
  line-height: 1.4;
  resize: none;
}

.critic-reply-input:focus {
  outline: none;
  border-color: #d0a64b;
}

.critic-reply-send {
  flex-shrink: 0;
  padding: 3px 10px;
  border: 1px solid #d0a64b;
  border-radius: 4px;
  color: #8a6d1f;
  cursor: pointer;
  text-decoration: none;
  font-size: 12px;
}

.critic-reply-send:hover {
  background: #fff5d6;
  text-decoration: none;
  color: #8a6d1f;
}

.critic-resolve,
.critic-permalink {
  flex-shrink: 0;
  padding: 3px 10px;
  border: 1px solid #cbd5c0;
  border-radius: 4px;
  color: #5f7050;
  cursor: pointer;
  text-decoration: none;
  font-size: 12px;
}

.critic-permalink {
  padding: 3px 7px;
}

.critic-resolve:hover,
.critic-permalink:hover {
  background: #eef2e8;
  text-decoration: none;
  color: #5f7050;
}

body.night .critic-comment-message + .critic-comment-message {
  border-top-color: #4a3d20;
}

body.night .critic-comment-form {
  background: #2b2314;
  border-color: #8f6b28;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

body.night .critic-comment-close,
body.night .critic-comment-close:hover {
  color: #e2c089;
}

body.night .critic-reply-input {
  background: #23211c;
  border-color: #4a3d20;
  color: #d4c4a0;
}

body.night .critic-reply-input:focus {
  border-color: #8f6b28;
}

body.night .critic-reply-send {
  border-color: #8f6b28;
  color: #e2c089;
}

body.night .critic-reply-send:hover {
  background: #3a3018;
  color: #e2c089;
}

/* Spec references: a link, but quieter than a prose link, since a dense spec
   can carry many of them. */
.spec-ref {
  color: #8a6d1f;
  border-bottom: 1px dotted #c0a659;
  text-decoration: none;
  white-space: nowrap;
}

.spec-ref:hover,
.spec-ref:focus {
  color: #6d5518;
  border-bottom-style: solid;
  text-decoration: none;
}

body.night .spec-ref {
  color: #e2c089;
  border-bottom-color: #8f6b28;
}

body.night .spec-ref:hover,
body.night .spec-ref:focus {
  color: #f0d5a5;
}

/* Spec header: the frontmatter HedgeDoc's meta rule swallows, put back above
   the document. */
.spec-header {
  margin: 0 0 24px;
  padding: 10px 14px;
  border-left: 3px solid #c0a659;
  background: rgba(192, 166, 89, 0.08);
  border-radius: 0 4px 4px 0;
  font-size: 0.9em;
}

.spec-header-title {
  font-weight: 600;
  font-size: 1.15em;
}

/* flex+gap rather than separator characters: any separator that belongs to an
   item leads the line when that item wraps. */
.spec-header-facts,
.spec-header-rels {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 10px;
  margin-top: 4px;
  color: #6b6555;
}

.spec-pr {
  color: #8a6d1f;
  text-decoration: none;
}

.spec-pr:hover,
.spec-pr:focus {
  text-decoration: underline;
}

.spec-pr.pr-merged {
  color: #5a7a4a;
}

.spec-pr.pr-closed {
  color: #a06060;
}

/* a declared area the namespace does not route to: the spec publishes at the
   top of the specs dir, not under this name */
.spec-header-unrouted {
  text-decoration: line-through;
  opacity: 0.7;
}

.spec-header-kind {
  font-weight: 600;
  color: #6d5518;
}

.spec-status {
  display: inline-block;
  padding: 0 7px;
  border-radius: 10px;
  background: rgba(192, 166, 89, 0.25);
  color: #6d5518;
  font-weight: 600;
}

.spec-status-approved,
.spec-status-implemented {
  background: rgba(90, 165, 90, 0.22);
  color: #35662f;
}

body.night .spec-header {
  border-left-color: #8f6b28;
  background: rgba(143, 107, 40, 0.14);
}

body.night .spec-header-facts,
body.night .spec-header-rels {
  color: #a89b80;
}

body.night .spec-status {
  background: rgba(143, 107, 40, 0.3);
  color: #e2c089;
}

body.night .spec-status-approved,
body.night .spec-status-implemented {
  color: #9fd39a;
}

.markdown-body.slides {
  position: relative;
  z-index: 1;
  color: #222;
}

.markdown-body.slides::before {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
  background-color: currentColor;
  box-shadow: 0 0 0 50vw;
}

.markdown-body.slides section[data-markdown] {
  position: relative;
  margin-bottom: 1.5em;
  background-color: #fff;
  text-align: center;
}

.markdown-body.slides section[data-markdown] code {
  text-align: left;
}

.markdown-body.slides section[data-markdown]::before {
  content: '';
  display: block;
  padding-bottom: 56.23%;
}

.markdown-body.slides section[data-markdown] > div:first-child {
  position: absolute;
  top: 50%;
  left: 1em;
  right: 1em;
  transform: translateY(-50%);
  max-height: 100%;
  overflow: hidden;
}

.markdown-body.slides section[data-markdown] > ul {
  display: inline-block;
}

.markdown-body.slides > section > section + section::after {
  content: '';
  position: absolute;
  top: -1.5em;
  right: 1em;
  height: 1.5em;
  border: 3px solid #777;
}

.markdown-body.slides aside.notes {
  display: none;
}

.markdown-body.slides ul, .markdown-body.slides ol {
  display: inline-block;
  text-align: left;
  margin: 0 0 0 1em;
  padding: 0;
}

.markdown-body.slides table {
  width: 50%;
  margin: 0 auto;
  border-collapse: collapse;
  border-spacing: 0;
  display: table;
}

.markdown-body.slides table th, .markdown-body.slides table td {
  text-align: left;
  padding: 0.2em 0.5em 0.2em 0.5em;
  border:none;
  border-bottom: 1px solid;
}

.markdown-body.slides table tr {
  border-top: 0;
  background-color: #fff;
}

.markdown-body.slides table tr:nth-child(2n) {
  background-color: inherit;
}

.markdown-body.slides table tbody tr:last-child th, .markdown-body.slides table tbody tr:last-child td {
  border-bottom: none;
}

.markdown-body.slides h1, .markdown-body.slides h2 {
    border-bottom: 0;
}

.night .markdown-body.slides h1,
.night .markdown-body.slides h2,
.night .markdown-body.slides h3,
.night .markdown-body.slides h4,
.night .markdown-body.slides h5,
.night .markdown-body.slides h6 {
    color: black;
}

.markdown-body section > section:last-child {
	margin-bottom: 1.5em !important;
}

/* slides previews get a black background, controlled by js */
.ui-view-area.black {
  background-color: black !important;;
}

/* for all pages should include this */
body {
    font-smoothing: subpixel-antialiased !important;
    -webkit-font-smoothing: subpixel-antialiased !important;
    -moz-osx-font-smoothing: auto !important;
    text-shadow: 0 0 1em transparent, 1px 1px 1.2px rgba(0, 0, 0, 0.004);
    /*text-rendering: optimizeLegibility;*/
    -webkit-overflow-scrolling: touch;
    font-family: "Source Sans Pro", Helvetica, Arial, sans-serif;
    letter-spacing: 0.025em;
}
:focus, .focus {
    outline: none !important;
}
::-moz-focus-inner {
    border: 0 !important;
}

/* manual fix for bootstrap issue 14040, there is an unnecessary padding-right on modal open */
body.modal-open {
    overflow-y: auto;
    padding-right: 0 !important;
}
/* SpecDoc: hide non-essential feature entries. Backend routes stay; the UI
   just doesn't offer them. Applied by overlay.sh at build. */
.ui-extra-slide,
.ui-marp-preview, .ui-marp-download,
.ui-download-html, .ui-download-raw-html,
.ui-copy-html, .ui-copy-raw-html,
.ui-save-dropbox, .ui-save-gist, .ui-save-snippet,
.ui-import-dropbox, .ui-import-gist, .ui-import-snippet { display: none !important; }
li:has(> .ui-extra-slide),
li:has(> .ui-marp-preview), li:has(> .ui-marp-download),
li:has(> .ui-download-html), li:has(> .ui-download-raw-html),
li:has(> .ui-copy-html), li:has(> .ui-copy-raw-html),
li:has(> .ui-save-dropbox), li:has(> .ui-save-gist), li:has(> .ui-save-snippet),
li:has(> .ui-import-dropbox), li:has(> .ui-import-gist), li:has(> .ui-import-snippet) { display: none !important; }

/* HedgeDoc community/social promotion on the cover page; not ours. */
.social-foot { display: none !important; }

/* Cover-page marketing: tagline, feature blurbs (collaboration /
   charts+MathJax / slide mode), the upstream HedgeDoc UI screenshot, and the
   "Explore all features" button (upstream /features note) with its "or". */
#home p.lead, #home .lead.row, #home img.screenshot,
#home .ui-or, #home a[href$="/features"] { display: none !important; }

/* Publish button (navbar + menu): specs live on the board, the published
   pretty-view is unused. */
.ui-publish, li:has(> .ui-publish) { display: none !important; }
/* SpecDoc: align Bootstrap form controls with the project palette so the editor
   matches the spec board and approval widget. Accent is the mascot's pencil
   yellow (#efcb5f); yellow fills carry dark ink text (white fails WCAG on
   yellow), links/focus use a legible dark gold. Appended to site.css by
   overlay.sh at build; !important beats Bootstrap's same-specificity rules
   regardless of bundle order. */
.btn-primary {
  background-color: #efcb5f !important;
  border-color: #caa437 !important;
  color: #1c1917 !important;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary.focus,
.btn-primary:active, .btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  background-color: #e0b63f !important;
  border-color: #b8922f !important;
  color: #1c1917 !important;
}
.btn-danger {
  background-color: #cf222e !important;
  border-color: #b51d27 !important;
}
.btn-danger:hover, .btn-danger:focus, .btn-danger.focus,
.btn-danger:active, .btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  background-color: #b51d27 !important;
  border-color: #9a1821 !important;
}
.btn-success {
  background-color: #2da44e !important;
  border-color: #248a3d !important;
}
.btn-success:hover, .btn-success:focus, .btn-success.focus,
.btn-success:active, .btn-success.active,
.open > .dropdown-toggle.btn-success {
  background-color: #248a3d !important;
  border-color: #1f7735 !important;
}
.form-control:focus {
  border-color: #caa437 !important;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(202, 164, 55, .5) !important;
}
/* Bootstrap's default link blue -> brand dark gold (legible on white; the raw
   pencil yellow is unreadable on white). No !important on purpose: more
   specific selectors (navbar, dark dropdowns, status labels) keep their own
   colors; only plain-anchor blue is replaced. */
a { color: #9a7409; }
a:hover, a:focus { color: #6f5406; }
/* The cover page (intro/history) sits on #333, where the dark gold is dim; use
   the light end of the same family. Buttons keep their own colors; modals live
   outside .cover-container and stay on-white gold. Editor night mode is
   untouched (upstream .night a is more specific). */
.cover-container a:not(.btn) { color: #f0d68a; }
.cover-container a:not(.btn):hover, .cover-container a:not(.btn):focus { color: #f7e6b5; }
/* ONLINE badge (JS swaps label-danger -> label-primary when connected). */
.label-primary { background-color: #efcb5f !important; color: #1c1917 !important; }
/* History pagination: the active page pill was Bootstrap blue. */
.pagination > .active > a, .pagination > .active > span,
.pagination > .active > a:hover, .pagination > .active > a:focus,
.pagination > .active > span:hover, .pagination > .active > span:focus {
  background-color: #efcb5f !important;
  border-color: #caa437 !important;
  color: #1c1917 !important;
}
/* Sign In CTAs are primary actions, not "success"; green is the approve
   color in this project. */
.btn-success.ui-signin {
  background-color: #efcb5f !important;
  border-color: #caa437 !important;
  color: #1c1917 !important;
}
.btn-success.ui-signin:hover, .btn-success.ui-signin:focus,
.btn-success.ui-signin:active {
  background-color: #e0b63f !important;
  border-color: #b8922f !important;
  color: #1c1917 !important;
}

/**
 * GitHub Gist Theme
 * Author : Anthony Attard - https://github.com/AnthonyAttard
 * Author : Louis Barranqueiro - https://github.com/LouisBarranqueiro
 */

.hljs {
  display: block;
  background: white;
  padding: 0.5em;
  color: #333333;
  overflow-x: auto;
}

.hljs-comment,
.hljs-meta {
  color: #969896;
}

.hljs-variable,
.hljs-template-variable,
.hljs-strong,
.hljs-emphasis,
.hljs-quote {
  color: #df5000;
}

.hljs-keyword,
.hljs-selector-tag,
.hljs-type {
  color: #d73a49;
}

.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-attribute {
  color: #0086b3;
}

.hljs-section,
.hljs-name {
  color: #63a35c;
}

.hljs-tag {
  color: #333333;
}

.hljs-title,
.hljs-attr,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
  color: #6f42c1;
}

.hljs-addition {
  color: #55a532;
  background-color: #eaffea;
}

.hljs-deletion {
  color: #bd2c00;
  background-color: #ffecec;
}

.hljs-link {
  text-decoration: underline;
}

.hljs-number {
  color: #005cc5;
}

.hljs-string {
  color: #032f62;
}


/*# sourceMappingURL=pretty.16b5e65b6aa95bff283d.css.map*/