body.pin-fbody {
    width: var(--doc-width);
    height: var(--doc-height);

    color: var(--color-fg);
    background-color: var(--color-bg);
}

div.pin-fbody {
    padding: 2em;
    font-family: var(--ff-body);
    font-size: 12pt;

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

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

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

    nav {
        font-size: 14pt;
        padding-bottom: 10pt;
        margin-bottom: 10pt;
        border-bottom: 1pt solid var(--color-fg);

        .name {
            float: right;

            &::before {
                content: var(--paragraph-prefix);
            }

            &::after {
                content: '.';
            }
        }
    }

    strong {
        margin-inline-start: 0.25em;
        margin-inline-end: 0.125em;
        letter-spacing: 0.125em;
        font-feature-settings: "liga" 1, "calt" 1;
        font-weight: 400;
    }

    blockcode {
        display: block;
        white-space: pre;
    }

    p, .paragraph:not(ol):not(ul) {
        margin-block: var(--paragraph-margin);
        padding-inline: var(--paragraph-padding);
        text-align: justify;
    }

    li {
        text-align: justify;
    }

    ol, ul {
        margin-block: var(--paragraph-margin);
    }

    ol {
        padding-left: 3em;

        h4 { margin: 0; }
    }

    ol.paragraph, ul.paragraph {
        padding-right: 1em;
    }

    ol.compact, ul.compact {
        margin: 0;
    }

    ol.lower-alpha {
        list-style-type: none;
        counter-reset: item;

        li {
            position: relative;

            &::before {
                content: '(' counter(item, lower-alpha) ')';
                counter-increment: item;
                position: absolute;
                left: -2.5em;
            }
        }
    }

    h1 {
        font-size: 14pt;
        margin-top: 1em;
        margin-bottom: 0.25em;

        span.index {
            &::after {
                content: '.';
                color: var(--color-fg);
            }
        }
    }

    h2 {
        font-size: 14pt;
        margin: 0;
    }

    li header {
        display: inline;
        font-weight: 700;

        &::after {
            content: ':';
        }
    }

    span.iref {
        &::before {
            content: '(siehe ';
        }

        &::after {
            content: ')'
        }

        a.index::before {
            content: var(--paragraph-prefix-inline);
        }
    }

    z {
        font-feature-settings: "liga" 0, "calt" 0;
    }

    table {
        font-feature-settings: "tnum" 1;
    }

    table.pin-prettytable {
        &.paragraph { display: block; }

        border-collapse: collapse;

        th,
        td,
        caption {
            border: 1px solid var(--color-fg);
            padding: 1pt;
            padding-inline: 0.5ch;
        }

        th {
            text-align: left;
        }

        caption {
            border-bottom: 0;
            font-weight: 700;
        }
    }

    .title {
        text-align: center;
        margin-top: 64pt;
        margin-bottom: 48pt;
    }

    .number {
        font-size: 20pt;
        font-weight: 700;
        --dash-distance: 10pt;

        &::before,
        &::after {
            content: '⸺';
        }

        &::before {
            margin-right: var(--dash-distance);
        }

        &::after {
            margin-left: var(--dash-distance);
        }

        .prefix-parent {
            position: relative;
            margin-right: 0.75rem;

            &::after {
                position: absolute;
                font-size: 50%;
                content: '•';
                bottom: 1pt;
                left: 16.5pt;
            }
        }

        .prefix-child {
            position: absolute;
            font-size: 13pt;
            top: 0.3ch;
        }
    }

    .headline {
        font-size: 24pt;
        font-weight: 700;
    }

    .author {
        margin-top: 0.25em;

        .name {
            letter-spacing: 0.125em;
            font-feature-settings: "liga" 1, "calt" 1;
        }
    }

    div.key-value {
        span.key {
            font-weight: bold;
        }

        span.key::after {
            content: ':'
        }

        span.value {
            display: block;
            margin-bottom: 0.75em;
            padding-left: 10px;
        }
    }

    table.reflist {
        th { font-weight: 400; }
        th::before { content: '['; }
        th::after { content: ']'; }

        th, td {
            vertical-align: top;
        }

        td {
            padding-left: 1em;
        }
    }
}
