

:root {
    --width-page: 700px;

    color-scheme: dark;

    --color-my-orange:   hsl(31 74 57);
    --color-my-orange-1: hsl(31 74 64);
    --color-my-orange-2: hsl(31 74 68);
    --color-font-main:   hsl(254 74 95);
    --color-font-second: hsl(249 10 78);
    --color-font-faded:  hsl(249 10 61);

    --color-entry-hr: hsl(249 10 40);

    --color-bg-1: hsl(249 10 14);
    --color-bg-2: hsl(252 9 10);

    --radius-search-bar: 7px;

    --search-results-line-limit: 7;

    /** CSS Table */
    --color-table-1:    rgba(200, 200, 200, 0.01);
    --color-table-2:    rgba(200, 200, 200, 0.02);
    --color-table-3:    rgba(200, 200, 200, 0.03);
    --color-table-line: rgba(200, 200, 230, 0.08);

    /** Code */
    --code-bg: rgba(118, 174, 203, 0.03);
    --code-color: hsl(200 45 80);
    --code-border-color: hsl(200 45 35);

    /** Annotations */
    --color-anot-note:          hsl(215 60 49);
    --color-anot-note-bg:       rgba(49, 111, 199, 0.05);
    --color-anot-tip:           hsl(162 60 49);
    --color-anot-tip-bg:        rgba(49, 199, 155, 0.05);
    --color-anot-important:     hsl(287 60 49);
    --color-anot-important-bg:  rgba(167, 49, 199, 0.05);
    --color-anot-warning:       hsl(27 62 52);
    --color-anot-warning-bg:    rgba(209, 125, 57, 0.05);
    --color-anot-caution:       hsl(0 59 50);
    --color-anot-caution-bg:    rgba(203, 53, 53, 0.05);

    --color-anot-border: hsl(249 10 30);
}

html {
    min-height: 100%;
    font-size: 17px;
    line-height: 1.55;
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    font-family: Verdana, Geneva, Tahoma, sans-serif;
    background-color: var(--color-bg-1);
    color: var(--color-font-main);
    margin: 0;
    padding: 0;
    scrollbar-width: thin;
    scrollbar-gutter: stable;
}

.main {
    flex: 1;
    display: flex;
    justify-content: flex-start;
    flex-direction: column;
}

.header {
    background-color: var(--color-bg-2);
    color: var(--color-my-orange);
    padding: 0.8em;
    text-align: center;
    font-size: 2em;
    letter-spacing: 2px;
}

.link-box {
    padding: 1em;
}

.link-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    user-select: none;
    text-align: center;

    & a {
        text-decoration: none;
        color: inherit;
    }

    & div {
        background-color: hsl(252 9 13);
        border: solid 1px hsl(249 10 30);
        border-radius: 5px;
        padding: 0.8em;
        padding-left: 1.2em;
        padding-right: 1.2em;

        white-space: normal;
        word-break: break-word;

        &:hover {
            outline: 1px solid hsl(249 10 30);
            background-color: hsl(252 9 15);
            color: hsl(254 74 98);
            cursor: pointer;
        }

        &:active {
            outline: 2px solid hsl(249 10 30);
            background-color: hsl(252 9 17);
            color: hsl(254 74 100);
        }
    }
}

.link-box, .content {
    margin-left: auto;
    margin-right: auto;
}

.content {
    padding-top: 1em;
    padding-bottom: 4em;
    width: 95%;
    max-width: var(--width-page);
}

.content-text a {
    color: var(--color-font-main) !important;
    &:hover  { color: var(--color-font-main) !important; }
    &:active { color: var(--color-font-main) !important; }
}

.generic-page {
    margin-bottom: 1.8em;
    padding-bottom: 0.1em;
    padding-left: 1em;
    padding-right: 1em;

    & hr {
        margin-top: 2em;
        padding-top: 1px;
        border: none;
        border-top: solid 2px hsl(249 10 30);
    }

    img {
        width: 90%;
        object-fit: contain;
    }
}


.entry {
    border-left: solid 4px var(--color-my-orange);
    margin-top: 1.8em;
    margin-bottom: 1.8em;
    padding-bottom: 0.1em;
    padding-left: 1em;
    padding-right: 1em;

    & hr {
        margin-top: 2em;
        padding-top: 1px;
        border: none;
        border-top: solid 2px var(--color-entry-hr);
    }

    img {
        width: 90%;
        object-fit: contain;
    }
}

.entry-title {
    margin-left: -20px;
    text-transform: capitalize;
    font-weight: bold;
    font-style: italic;
}

.entry-metadata {
    margin-top: 1px;
    font-style: italic;
    color: var(--color-font-faded);
}

.overview {
    display: grid;
    grid-template-columns: 1fr;
    padding: 0;
    margin: auto;
    list-style: none;
}

.overview li {
    padding: 6px;
    padding-left: 15px;
    padding-right: 15px;
    border-bottom: solid 1px var(--color-table-line);
}

.overview li:not(.header):nth-child(2n) {
    background: var(--color-table-1);
}

.overview li:not(.header):nth-child(2n + 1) {
    background: var(--color-table-2);
}

.overview li:not(.header):hover {
    background: var(--color-table-3);

    & .overview-title {
        color: var(--color-my-orange-2);
    }
}

.overview-title {
    float: left;
    text-transform: capitalize;
    font-weight: bold;
    color: var(--color-my-orange);
}

.overview-metadata {
    float: right;
    color: var(--color-font-faded);
}

.right-reset {
    font-style: normal;
    float: right;
}

.link-arr {
    font-size: 0.5em;
    position: relative;
    bottom: 0.9em;
}

.text {
    margin-left: 20px;

    & h1, h2 {
        font-size: 1.7em;
        color: var(--color-my-orange);
    }
}

.title-with-line {
    color: var(--color-my-orange);
    text-align: center;
    padding-bottom: 0.2em;
    border-bottom: solid 3px hsl(249 10 30);
}

.link a {
    text-decoration: underline dotted;
    color: var(--color-my-orange);

    &:hover {
        text-decoration: underline;
        color: var(--color-my-orange-1);
    }

    &:active {
        color: var(--color-my-orange-2);
    }
}

.link h2, h3, h4, h5, h6 {
    a {
        text-decoration: none;
    }
}

.fat-link a {
    text-decoration: none;

    &:hover {
        text-decoration-thickness: 5px;
    }
}

.search-input {
    display: flex;
    justify-content: center;
    margin: 20px 0;

    form {
        display: flex;
        align-items: center;
        width: 100%;
        max-width: 500px;  }

    input {
        flex: 1;
        padding: 12px 16px;
        font-size: 16px;

        color: var(--color-font-faded);
        background-color: var(--color-bg-2);

        border: none;
        border-radius: var(--radius-search-bar) 0 0 var(--radius-search-bar);
        outline: none;
    }

    button {
        padding: 12px 20px;
        font-size: 16px;

        color: var(--color-bg-1);
        background-color: var(--color-my-orange);

        border: none;
        border-radius: 0 var(--radius-search-bar) var(--radius-search-bar) 0;
        cursor: pointer;

        &:hover {
            background-color: var(--color-my-orange-1);
        }
    }
}

.search-results {
    margin-top: 1em;
    margin-bottom: 2em;

    h1 {
        margin-top: 0.6em;
        margin-bottom: 0.2em;
    }
}

.search-response {
    text-align: center;
    font-weight: bold;
}

.search-response.error {
    color: var(--color-anot-caution);
}

.search-item {
    background: var(--color-bg-1);
    border-bottom: 1px solid var(--color-entry-hr);
    margin-right: 20px;

    .entry-metadata {
        margin-top: 0.4em;
    }
}

.search-preview {
    margin-top: 0.6em;
    margin-bottom: 1.2em;

    line-clamp: var(--search-results-line-limit);

    /** Fallback */
    display: -webkit-box;
    -webkit-line-clamp: var(--search-results-line-limit);
    -webkit-box-orient: vertical;

    overflow: hidden;
}

.skew {
    margin-left: -20px;
    padding-bottom: 0.3em;
    text-transform: capitalize;
    transform: skewY(-2deg);
    transform-origin: top;
    font-weight: bold;
    font-style: italic;
    text-decoration: underline;
    text-decoration-thickness: 5px;
    text-underline-offset: 12%;
}

.footer {
    background-color: var(--color-bg-2);
    padding: 1em;
    text-align: center;
    margin-top: auto;
}

/** Code */
code {
    font-size: 0.92em;
    background-color: var(--code-bg);
    color: var(--code-color);
    border: solid 1px var(--code-border-color);
    border-radius: 3px;
    padding-left: 2px;
    padding-right: 2px;
    margin-left: 2px;
    margin-right: 2px;
}

pre code {
    font-size: 0.92em;
    display: block;
    background-color: var(--code-bg);
    color: var(--code-color);
    border: solid 1px var(--code-border-color);
    border-radius: 3px;
    padding: 5px;
    padding-left: 8px;
    padding-right: 8px;
    line-height: 1.5;
    text-wrap: auto;
    white-space: pre;
    overflow-x: auto;
}

/** Quotes */
blockquote {
    color: hsl(233 13 61);
    border-left: solid 3px hsl(233 13 61);
    margin-left: 0;
    margin-right: 0;
    padding-left: 1em;
    padding-right: 1em;
}

/** Annotations */
.bq-note,
.bq-tip,
.bq-important,
.bq-warning,
.bq-caution {
    font-style: normal;
    color: var(--color-font-second);
    background-color: transparent;
    margin-left: 1.5em;
    margin-right: 1.5em;
    padding: 7px;
    padding-left: 10px;
    padding-right: 10px;
    border-radius: 7px;
    border: solid 1px var(--color-anot-border);
    border-left: solid 5px transparent;
}

.bq-note::before,
.bq-tip::before,
.bq-important::before,
.bq-warning::before,
.bq-caution::before {
    padding-top: 5px;
    white-space: pre;
    font-weight: bold;
    display: block;
}

.bq-note {
    border-left-color: var(--color-anot-note);
    background-color: var(--color-anot-note-bg);

}

.bq-note::before {
    content: "Note\A";
    color: var(--color-anot-note);
}

.bq-tip {
    border-left-color: var(--color-anot-tip);
    background-color: var(--color-anot-tip-bg);
}

.bq-tip::before {
    content: "Tip\A";
    color: var(--color-anot-tip);
}

.bq-important {
    border-left-color: var(--color-anot-important);
    background-color: var(--color-anot-important-bg);
}

.bq-important::before {
    content: "Important\A";
    color: var(--color-anot-important);
}

.bq-warning {
    border-left-color: var(--color-anot-warning);
    background-color: var(--color-anot-warning-bg);
}

.bq-warning::before {
    content: "Warning\A";
    color: var(--color-anot-warning);
}

.bq-caution {
    border-left-color: var(--color-anot-caution);
    background-color: var(--color-anot-caution-bg);
}

.bq-caution::before {
    content: "Caution\A";
    color: var(--color-anot-caution);
}

