/* Layout */
.changelog-layout {
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 2rem;
    max-width: 960px;
    align-items: start;
}

/* Sidebar */
.changelog-sidebar {
    position: sticky;
    top: 1.5rem;
}

.changelog-sidebar-title {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--bs-secondary-color, #6c757d);
    margin-bottom: 0.5rem;
}

.changelog-nav-link {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.6rem;
    border-radius: 0.25rem;
    color: var(--bs-body-color, #212529);
    text-decoration: none;
    font-size: 0.875rem;
    transition: background 0.15s, color 0.15s;
}

.changelog-nav-link:hover {
    background: var(--bs-tertiary-bg, #f8f9fa);
    color: var(--bs-body-color, #212529);
    text-decoration: none;
}

.changelog-nav-link.active {
    font-weight: 600;
}

.changelog-badge {
    font-size: 0.65rem;
    font-weight: 600;
    background: var(--bs-success-bg-subtle, color-mix(in srgb, var(--primary-100) 50%, white));
    color: black;
    padding: 0.1em 0.45em;
    border-radius: 2rem;
    white-space: nowrap;
}

/* Entries */
.changelog-entry {
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    border-radius: 0.5rem;
    border: 1px solid var(--bs-border-color, #dee2e6);
    scroll-margin-top: 1.5rem;
}

.changelog-entry--latest {
    border-color: var(--primary-300);
    border-width: 2px;
}

@media (max-width: 640px) {
    .changelog-layout {
        grid-template-columns: 1fr;
    }
    .changelog-sidebar {
        position: static;
    }
}

article.block table {
    border-collapse: collapse;
    width: 100%;
    margin-bottom: 1rem;
}
article.block table th,
article.block table td {
    border: 1px solid var(--bs-border-color, #dee2e6);
    padding: 0.5rem 0.75rem;
}
article.block table thead th {
    background-color: var(--bs-tertiary-bg, #f8f9fa);
}

/* Syntax highlighting */
.codehilite { background: #f0f0f0; border-radius: 0.375rem; padding: 1rem; margin-bottom: 1rem; }
.codehilite pre { white-space: pre-wrap; word-break: break-all; }
.codehilite pre { margin: 0; line-height: 125%; }
.codehilite .hll { background-color: #ffffcc }
.codehilite .c  { color: #60A0B0; font-style: italic }
.codehilite .err { border: 1px solid #F00 }
.codehilite .k  { color: #007020; font-weight: bold }
.codehilite .o  { color: #666 }
.codehilite .ch { color: #60A0B0; font-style: italic }
.codehilite .cm { color: #60A0B0; font-style: italic }
.codehilite .cp { color: #007020 }
.codehilite .cpf { color: #60A0B0; font-style: italic }
.codehilite .c1 { color: #60A0B0; font-style: italic }
.codehilite .cs { color: #60A0B0; background-color: #FFF0F0 }
.codehilite .gd { color: #A00000 }
.codehilite .ge { font-style: italic }
.codehilite .ges { font-weight: bold; font-style: italic }
.codehilite .gr { color: #F00 }
.codehilite .gh { color: #000080; font-weight: bold }
.codehilite .gi { color: #00A000 }
.codehilite .go { color: #888 }
.codehilite .gp { color: #C65D09; font-weight: bold }
.codehilite .gs { font-weight: bold }
.codehilite .gu { color: #800080; font-weight: bold }
.codehilite .gt { color: #04D }
.codehilite .kc { color: #007020; font-weight: bold }
.codehilite .kd { color: #007020; font-weight: bold }
.codehilite .kn { color: #007020; font-weight: bold }
.codehilite .kp { color: #007020 }
.codehilite .kr { color: #007020; font-weight: bold }
.codehilite .kt { color: #902000 }
.codehilite .m  { color: #40A070 }
.codehilite .s  { color: #4070A0 }
.codehilite .na { color: #4070A0 }
.codehilite .nb { color: #007020 }
.codehilite .nc { color: #0E84B5; font-weight: bold }
.codehilite .no { color: #60ADD5 }
.codehilite .nd { color: #555; font-weight: bold }
.codehilite .ni { color: #D55537; font-weight: bold }
.codehilite .ne { color: #007020 }
.codehilite .nf { color: #06287E }
.codehilite .nl { color: #002070; font-weight: bold }
.codehilite .nn { color: #0E84B5; font-weight: bold }
.codehilite .nt { color: #062873; font-weight: bold }
.codehilite .nv { color: #BB60D5 }
.codehilite .ow { color: #007020; font-weight: bold }
.codehilite .w  { color: #BBB }
.codehilite .mb { color: #40A070 }
.codehilite .mf { color: #40A070 }
.codehilite .mh { color: #40A070 }
.codehilite .mi { color: #40A070 }
.codehilite .mo { color: #40A070 }
.codehilite .sa { color: #4070A0 }
.codehilite .sb { color: #4070A0 }
.codehilite .sc { color: #4070A0 }
.codehilite .dl { color: #4070A0 }
.codehilite .sd { color: #4070A0; font-style: italic }
.codehilite .s2 { color: #4070A0 }
.codehilite .se { color: #4070A0; font-weight: bold }
.codehilite .sh { color: #4070A0 }
.codehilite .si { color: #70A0D0; font-style: italic }
.codehilite .sx { color: #C65D09 }
.codehilite .sr { color: #235388 }
.codehilite .s1 { color: #4070A0 }
.codehilite .ss { color: #517918 }
.codehilite .bp { color: #007020 }
.codehilite .fm { color: #06287E }
.codehilite .vc { color: #BB60D5 }
.codehilite .vg { color: #BB60D5 }
.codehilite .vi { color: #BB60D5 }
.codehilite .vm { color: #BB60D5 }
.codehilite .il { color: #40A070 }
.codehilite .nx { color: #06287E }