:root {
    --blockquote-border-color: #516ab6;
    --blockquote-text-color: #666;
    --body-color: #fff;
    --checkbox-color: #2196f3;
    --code-background-color: #f6f8fa;
    --code-font: ui-monospace, "Cascadia Code", "SF Mono", Menlo, Consolas, monospace;
    --copy-button-background: #f0f0f0;
    --copy-button-background-hover: #e0e0e0;
    --copy-button-color: #666;
    --default-font: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "BIZ UDPGothic", "Segoe UI Emoji", Meiryo, sans-serif;
    --dt-color: #222;
    --footnote-arrow-font: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "BIZ UDPGothic", Meiryo, sans-serif;
    --footnote-border-color: #516ab6;
    --header-background-color: #eaf3ff;
    --header-border-color: #516ab6;
    --header-margin: 24px 0 16px;
    --text-color: #222;
    --link-hover-color: red;
    --table-footer-background-color: #eaf3ff;
    --table-header-background-color: #eaf3ff;
    --table-border-width: 1px;
    --table-border-color: #516ab6;
}

a {
   word-break: break-all;
}

a.fnref {
    font-size: smaller;
    text-decoration: none;
    vertical-align: super;
}

a:hover {
    color: var(--link-hover-color);
}

a.fnarrow {
    font-family: var(--footnote-arrow-font);
    text-decoration: none;
}

blockquote {
    border-color: var(--blockquote-border-color);
    border-style: solid;
    border-width: 1px 1px 1px 8px;
    color: var(--blockquote-text-color);
    margin-left: 0;
    margin-right: 0;
    padding-left: 24px;
    padding-right: 24px;
}

body {
    background-color: var(--body-color);
    color: var(--text-color);
    font-family: var(--default-font);
    line-height: 1.2;
    margin: 16px;
    font-size: 16px;
}

code {
    background-color: var(--code-background-color);
    font-family: var(--code-font);
    font-variant-ligatures: none;
    white-space: pre-wrap;
}

div.details {
    margin: 16px;
}

dl {
    margin: 0;
}

dt {
    color: var(--dt-color);
    font-weight: bold;
}

input[type="checkbox"] {
    accent-color: var(--checkbox-color);
}

h1 {
    background-color: var(--header-background-color);
    border-color: var(--header-border-color);
    border-style: solid;
    border-width: 0px 0px 0px 24px;
    font-size: 32px;
    padding: 8px 8px 8px 16px;
    margin: var(--header-margin);
}

h1.title {
    background-color: var(--body-color);
    border: none;
}

h2 {
    background-color: var(--header-background-color);
    font-size: 28px;
    padding: 8px;
    margin: var(--header-margin);
    border-color: var(--header-border-color);
    border-style: solid;
    border-width: 3px;
}

h3 {
    background-color: var(--header-background-color);
    font-size: 24px;
    padding: 8px;
    margin: var(--header-margin);
    border-color: var(--header-border-color);
    border-style: solid;
    border-width: 2px 0 2px 0;
}

h4 {
    background-color: var(--header-background-color);
    font-size: 20px;
    padding: 8px;
    margin: var(--header-margin);
    border-color: var(--header-border-color);
    border-style: solid;
    border-width: 0 0 2px 0;
}

h5 {
    background-color: var(--header-background-color);
    width: fit-content;
    font-size: 16px;
    padding: 8px;
    margin: var(--header-margin);
    border-color: var(--header-border-color);
    border-style: solid;
    border-width: 2px;
}

h6 {
    background-color: var(--header-background-color);
    width: fit-content;
    font-size: 14px;
    padding: 8px;
    margin: var(--header-margin);
    border-color: var(--header-border-color);
    border-style: solid;
    border-width: 0 0 1px 0;
}

hr.short {
    width: 80%;
}

img {
    max-width: 100%;
}

li {
    max-width: 100%;
}

li.task-list-item {
    list-style-type: none;
    input[type="checkbox"] {
        margin-left: -1.4em;
    }   
}

ol, ul {
    padding-left: 2em;
}

ol.list1 {
    list-style-type: decimal;
}

ol.list2 {
    list-style-type: lower-roman;
}

ol.list3 {
    list-style-type: lower-alpha;
}

pre {
    background-color: var(--code-background-color);
    font-variant-ligatures: none;
    padding: 8px;
    position: relative; /* For the copy button positioning */
}

pre.text {
    background-color: var(--body-color);
    font-family: var(--default-font);
    white-space: pre-wrap;
}

rt {
    font-size: 80%;
}

section.footnotes {
    border-width: 2px 0 0 0;
    border-color: var(--footnote-border-color);
    border-style: solid;
    font-size: small;
    margin-top: 16px;
    ol {
        padding-inline-start: 24px;
    }
}

table {
    border-collapse: collapse;
    margin-top: 16px;
    margin-bottom: 16px;
}

td, th {
    border: var(--table-border-width) solid var(--table-border-color);
    padding: 8px;
}

tfoot {
    background-color: var(--table-footer-background-color);
}

thead {
    background-color: var(--table-header-background-color);
}

ul.list1 {
    list-style-type: disc;
}

ul.list2 {
    list-style-type: circle;
}

ul.list3 {
    list-style-type: square;
}

.copy-button {
    position: absolute;
    top: 0.5em;
    right: 0.5em;
    padding: 0.25em 0.5em;
    border: none;
    border-radius: 4px;
    background-color: var(--copy-button-background);
    cursor: pointer;
    font-size: 0.8em;
    color: var(--copy-button-color);
}

.copy-button:hover {
    background-color: var(--copy-button-background-hover);
}
