/**
 * https://github.com/ericwbailey/a11y-syntax-highlighting/tree/main?tab=readme-ov-file
 * a11y-dark theme for JavaScript, CSS, and HTML
 * Based on the okaidia theme: https://github.com/PrismJS/prism/blob/gh-pages/themes/prism-okaidia.css
 * @author ericwbailey
 */

/*
 Theme
 */
 code[class*="language-"],
 pre[class*="language-"] {
   color: #f8f8f2;
   background: none;
   font-family: DM Mono, Consolas, Monaco, "Andale Mono", "Ubuntu Mono",
     monospace;
   text-align: left;
   white-space: pre;
   word-spacing: normal;
   word-break: normal;
   word-wrap: normal;
   font-weight: 500;
 
   -moz-tab-size: 4;
   -o-tab-size: 4;
   tab-size: 4;
 
   -webkit-hyphens: none;
   -moz-hyphens: none;
   -ms-hyphens: none;
   hyphens: none;
 }
 
 /* Code blocks */
 pre[class*="language-"] {
   padding: 1em;
   margin: 0.5em 0;
   overflow: auto;
   border-radius: 0.3em;
 }
 
 :not(pre) > code[class*="language-"],
 pre[class*="language-"] {
   background: #2b2b2b;
 }
 
 /* Inline code */
 :not(pre) > code[class*="language-"] {
   padding: 0.1em;
   border-radius: 0.3em;
   white-space: normal;
 }
 
 .token.comment,
 .token.prolog,
 .token.doctype,
 .token.cdata {
   color: #d4d0ab;
 }
 
 .token.punctuation {
   color: #fefefe;
 }
 
 .token.property,
 .token.tag,
 .token.constant,
 .token.symbol,
 .token.deleted {
   color: #ffa07a;
 }
 
 .token.boolean,
 .token.number {
   color: #00e0e0;
 }
 
 .token.selector,
 .token.attr-name,
 .token.string,
 .token.char,
 .token.builtin,
 .token.inserted {
   color: #abe338;
 }
 
 .token.operator,
 .token.entity,
 .token.url,
 .language-css .token.string,
 .style .token.string,
 .token.variable {
   color: #00e0e0;
 }
 
 .token.atrule,
 .token.attr-value,
 .token.function {
   color: #ffd700;
 }
 
 .token.keyword {
   color: #00e0e0;
 }
 
 .token.regex,
 .token.important {
   color: #ffd700;
 }
 
 .token.important,
 .token.bold {
   font-weight: bold;
 }
 .token.italic {
   font-style: italic;
 }
 
 .token.entity {
   cursor: help;
 }
 
 /*
    Plugin support
    */
 
 .line-highlight {
   position: absolute;
   left: 0;
   right: 0;
   padding: inherit 0;
   margin-top: 1em; /* Same as .prism’s padding-top */
 
   background: rgba(255, 217, 0, 0.1);
   border-top: 1px solid rgba(255, 217, 0, 0.55);
   border-bottom: 1px solid rgba(255, 217, 0, 0.55);
 
   pointer-events: none;
 
   line-height: inherit;
   white-space: pre;
 }
 
 @media print {
   .line-highlight {
     /*
        * This will prevent browsers from replacing the background color with white.
        * It's necessary because the element is layered on top of the displayed code.
        */
     -webkit-print-color-adjust: exact;
     color-adjust: exact;
   }
 }
 
 .line-highlight:before,
 .line-highlight[data-end]:after {
   content: attr(data-start);
   position: absolute;
   top: 0.4em;
   left: 0.6em;
   min-width: 1em;
   padding: 0 0.5em;
   background-color: hsla(24, 20%, 50%, 0.4);
   color: hsl(24, 20%, 95%);
   font: bold 65%/1.5 sans-serif;
   text-align: center;
   vertical-align: 0.3em;
   border-radius: 999px;
   text-shadow: none;
   box-shadow: 0 1px white;
 }
 
 .line-highlight[data-end]:after {
   content: attr(data-end);
   top: auto;
   bottom: 0.4em;
 }
 
 .line-numbers .line-highlight:before,
 .line-numbers .line-highlight:after {
   content: none;
 }
 
 pre[id].linkable-line-numbers span.line-numbers-rows {
   pointer-events: all;
 }
 pre[id].linkable-line-numbers span.line-numbers-rows > span:before {
   cursor: pointer;
 }
 pre[id].linkable-line-numbers span.line-numbers-rows > span:hover:before {
   background-color: rgba(128, 128, 128, 0.2);
 }
 
 pre[class*="language-"].line-numbers {
   position: relative;
   padding-left: 3.8em;
   counter-reset: linenumber;
 }
 
 pre[class*="language-"].line-numbers > code {
   position: relative;
   white-space: inherit;
 }
 
 .line-numbers .line-numbers-rows {
   position: absolute;
   pointer-events: none;
   top: 0;
   font-size: 100%;
   left: -3.8em;
   width: 3em; /* works for line-numbers below 1000 lines */
   letter-spacing: -1px;
   border-right: 1px solid #f8f8f2;
 
   -webkit-user-select: none;
   -moz-user-select: none;
   -ms-user-select: none;
   user-select: none;
 }
 
 .line-numbers-rows > span {
   display: block;
   counter-increment: linenumber;
 }
 
 .line-numbers-rows > span:before {
   content: counter(linenumber);
   color: #d4d0ab;
 
   display: block;
   padding-right: 0.8em;
   text-align: right;
 }
 
 /* Toolbar */
 
 div.code-toolbar {
   position: relative;
 }
 
 div.code-toolbar > .toolbar {
   position: absolute;
   z-index: 10;
   top: 0.3em;
   right: 0.2em;
   transition: opacity 0.3s ease-in-out;
   opacity: 0;
   display: flex;
   gap: 0.2rem;
 }
 
 div.code-toolbar:hover > .toolbar {
   opacity: 1;
 }
 
 /* Separate line b/c rules are thrown out if selector is invalid.
     IE11 and old Edge versions don't support :focus-within. */
 div.code-toolbar:focus-within > .toolbar {
   opacity: 1;
 }
 
 div.code-toolbar > .toolbar > .toolbar-item {
   display: inline-block;
 }
 
 div.code-toolbar > .toolbar > .toolbar-item > a {
   cursor: pointer;
 }
 
 div.code-toolbar > .toolbar > .toolbar-item > button {
   background: none;
   border: 0;
   color: inherit;
   font: inherit;
   overflow: visible;
   padding: 0;
   -webkit-user-select: none; /* for button */
   -moz-user-select: none;
   -ms-user-select: none;
 }
 
 div.code-toolbar > .toolbar > .toolbar-item > a,
 div.code-toolbar > .toolbar > .toolbar-item > button,
 div.code-toolbar > .toolbar > .toolbar-item > span {
   display: block;
   color: #161616;
   font-size: 0.875em;
   padding: 0.2rem 0.8em;
   background: #f2f2f2;
   border: 2px solid #f2f2f2;
   transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out;
 }
 
 div.code-toolbar > .toolbar > .toolbar-item > a:hover,
 div.code-toolbar > .toolbar > .toolbar-item > a:focus,
 div.code-toolbar > .toolbar > .toolbar-item > button:hover,
 div.code-toolbar > .toolbar > .toolbar-item > button:focus {
   color: #f2f2f2;
   background: #161616;
   text-decoration: none;
 }
 
 @media (prefers-color-scheme: dark) {
   /**
   * a11y-light theme for JavaScript, CSS, and HTML
   * Based on the okaidia theme: https://github.com/PrismJS/prism/blob/gh-pages/themes/prism-okaidia.css
   * @author ericwbailey
   */
 
   /*
   Theme
   */
   code[class*="language-"],
   pre[class*="language-"] {
     color: #545454;
   }
 
   /* Code blocks */
 
   :not(pre) > code[class*="language-"],
   pre[class*="language-"] {
     background: #fefefe;
   }
 
   /* Inline code */
   .token.comment,
   .token.prolog,
   .token.doctype,
   .token.cdata {
     color: #696969;
   }
 
   .token.punctuation {
     color: #545454;
   }
 
   .token.property,
   .token.tag,
   .token.constant,
   .token.symbol,
   .token.deleted {
     color: #007299;
   }
 
   .token.boolean,
   .token.number {
     color: #008000;
   }
 
   .token.selector,
   .token.attr-name,
   .token.string,
   .token.char,
   .token.builtin,
   .token.inserted {
     color: #aa5d00;
   }
 
   .token.operator,
   .token.entity,
   .token.url,
   .language-css .token.string,
   .style .token.string,
   .token.variable {
     color: #008000;
   }
 
   .token.atrule,
   .token.attr-value,
   .token.function {
     color: #aa5d00;
   }
 
   .token.keyword {
     color: #d91e18;
   }
 
   .token.regex,
   .token.important {
     color: #d91e18;
   }
 
   .token.important,
   .token.bold {
     font-weight: bold;
   }
   .token.italic {
     font-style: italic;
   }
 
   .token.entity {
     cursor: help;
   }
 
   /*
    Plugin support
   */
 
   /* Line highlight */
   .line-highlight {
     background: rgba(183, 134, 11, 0.075);
     border-top: 1px solid #b8860b;
     border-bottom: 1px solid #b8860b;
   }
 
   /* Line numbers */
   .line-numbers .line-numbers-rows {
     border-right: 1px solid #aa5d00;
   }
 
   .line-numbers-rows > span:before {
     color: #696969;
   }
 
   div.code-toolbar > .toolbar > .toolbar-item > a,
   div.code-toolbar > .toolbar > .toolbar-item > button,
   div.code-toolbar > .toolbar > .toolbar-item > span {
     color: #f2f2f2;
     background: #161616;
     border: 2px solid #161616;
   }
 
   div.code-toolbar > .toolbar > .toolbar-item > a:hover,
   div.code-toolbar > .toolbar > .toolbar-item > a:focus,
   div.code-toolbar > .toolbar > .toolbar-item > button:hover,
   div.code-toolbar > .toolbar > .toolbar-item > button:focus {
     color: #161616;
     background: #f2f2f2;
   }
 }
 
 /*
   High contrast mode support
  */
 
 @media screen and (-ms-high-contrast: active) {
   code[class*="language-"],
   pre[class*="language-"] {
     color: windowText;
     background: window;
   }
 
   :not(pre) > code[class*="language-"],
   pre[class*="language-"] {
     background: window;
   }
 
   .token.important {
     background: highlight;
     color: window;
     font-weight: normal;
   }
 
   .token.atrule,
   .token.attr-value,
   .token.function,
   .token.keyword,
   .token.operator,
   .token.selector {
     font-weight: bold;
   }
 
   .token.attr-value,
   .token.comment,
   .token.doctype,
   .token.function,
   .token.keyword,
   .token.operator,
   .token.property,
   .token.string {
     color: highlight;
   }
 
   .token.attr-value,
   .token.url {
     font-weight: normal;
   }
 }
 