.jbsadd-history-document, .jbsadd-rules .jbsadd-document {
    --document-ink: #17251e;
    --document-accent: #255a43;
    --document-rule: #c9d9d0;
    width: min(100% - 2.5rem, 61rem);
    margin: clamp(2rem, 6vw, 5rem) auto;
}
.jbsadd-document-heading, .jbsadd-rules .common-laws-header {
    padding-bottom: 1.65rem;
    border-bottom: 1px solid var(--document-rule);
}
.jbsadd-document-heading .jbsadd-document-lead { margin: .9rem 0 0; line-height: 1.65; }
.jbsadd-history-nav:not([hidden]) {
    border: 0;
    padding: .4rem 0;
    gap: .6rem;
    margin-top: 1.2rem;
}
.jbsadd-history-nav button {
    border-color: var(--document-rule);
    border-radius: .65rem;
    font-weight: 650;
    min-height: 44px;
}
.jbsadd-history-nav button[data-year-prev], .jbsadd-history-nav button[data-year-next] {
    width: 44px;
    border-radius: 50%;
    font-size: 1.2rem;
}
.jbsadd-history-nav button:disabled { opacity: .4; cursor: default; }
.jbsadd-history-nav button[aria-pressed=true] {
    background: #edf5ef;
    color: var(--document-accent);
    border-color: var(--document-accent);
    box-shadow: inset 0 -3px var(--document-accent);
}
.jbsadd-year-track { flex: 1; gap: .6rem; padding: .25rem; scrollbar-width: none; }
.jbsadd-year-track button { flex: 0 0 calc((100% - 2.4rem) / 5); font-size: 1.08rem; }
.jbsadd-history-summary { font-size: .88rem; margin: .5rem 0 1.5rem; }
.jbsadd-timeline {
    position: relative;
    margin-left: .45rem;
    padding-left: clamp(1.25rem, 3vw, 2rem);
    border-left: 2px solid var(--document-rule);
}
.jbsadd-history-year {
    position: relative;
    border-top: 0;
    border-bottom: 1px solid var(--document-rule);
    padding: 1.4rem 0 1.65rem;
    grid-template-columns: 7rem minmax(0, 1fr);
}
.jbsadd-history-year::before {
    content: "";
    position: absolute;
    inset: 1.9rem auto auto calc(-1 * clamp(1.25rem, 3vw, 2rem) - 7px);
    width: 10px;
    height: 10px;
    border: 2px solid #fff;
    border-radius: 50%;
    background: var(--document-accent);
    box-shadow: 0 0 0 1px var(--document-accent);
}
.jbsadd-history-year h2 { font-variant-numeric: tabular-nums; }
.jbsadd-history-year li + li { border-top: 1px solid #edf1ee; }
.jbsadd-history-year.is-entering { animation: jbsadd-history-enter .38s ease-out both; }
@keyframes jbsadd-history-enter {
    from { opacity: .25; transform: translateY(.65rem); }
    to { opacity: 1; transform: translateY(0); }
}
.jbsadd-rules .law-revision-picker {
    border: 0;
    border-bottom: 1px solid var(--document-rule);
    border-radius: 0;
    background: transparent;
    padding: .25rem 0 1.35rem;
}
.jbsadd-rules .law-revision-picker button {
    background: white;
    color: var(--document-accent);
    border: 1px solid var(--document-accent);
}
.jbsadd-rules .law-document { max-width: 51rem; margin: 1.6rem auto 0; padding: 0; border: 0; box-shadow: none; }
.jbsadd-rules .law-document > header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .55rem 1rem; }
.jbsadd-law-date { display: inline-flex; align-items: baseline; gap: .6rem; color: #456457; font-size: .9rem; }
.jbsadd-rules .law-document-body { font-size: clamp(1rem, 2vw, 1.08rem); }
.jbsadd-rules .law-document-body nav { background: transparent; border: 1px solid var(--document-rule); border-radius: .5rem; }
.jbsadd-rules .law-document-body nav h3 { border: 0; padding: 0; margin: 0 0 .55rem; }
.jbsadd-rules .law-document-body nav ol { margin: 0; padding-left: 1.4rem; }
.jbsadd-rules .law-document-body nav a { color: var(--document-accent); text-decoration: underline; text-underline-offset: .18em; }
.jbsadd-rules .law-document-body h3 { scroll-margin-top: 7rem; }
@media (max-width: 640px) {
    .jbsadd-history-nav:not([hidden]), .jbsadd-year-track { gap: .35rem; }
    .jbsadd-year-track button { flex-basis: calc((100% - .35rem) / 2); padding-inline: .25rem; font-size: .96rem; }
    .jbsadd-history-year { grid-template-columns: 1fr; }
    .jbsadd-rules .law-revision-picker > div { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) { .jbsadd-history-year.is-entering { animation: none; } }

/* The year selector and timeline share the same reading width. */
.jbsadd-history-document {
    --history-accent: #147f86;
    --history-muted: #50625c;
    --history-rule: #d6e1dc;
    width: min(100% - 3rem, 59.5rem);
}
.jbsadd-history-document .jbsadd-history-nav:not([hidden]) {
    gap: 12px;
    margin: 32px 0 16px;
    padding: 0;
}
.jbsadd-history-nav button {
    color: var(--history-muted);
    border: 1px solid var(--history-rule);
    border-radius: 8px;
    min-height: 44px;
    background: #fff;
}
.jbsadd-history-nav button[data-year-prev], .jbsadd-history-nav button[data-year-next] {
    flex: 0 0 36px;
    width: 36px;
    min-height: 36px;
    padding: 0;
}
.jbsadd-history-nav button[data-year="all"] { flex: 0 0 52px; font-size: .875rem; }
.jbsadd-history-nav button[aria-pressed=true] {
    color: #0d6870;
    border-color: var(--history-accent);
    background: #eaf5f4;
    box-shadow: inset 0 -3px var(--history-accent);
}
.jbsadd-history-nav button:focus-visible { outline: 2px solid var(--history-accent); outline-offset: -3px; }
.jbsadd-year-track { gap: 12px; padding: 0; }
.jbsadd-year-track button { flex: 0 0 calc((100% - 24px) / 3); font-size: 1.25rem; white-space: nowrap; }
.jbsadd-history-summary { margin: 0 0 3rem; color: var(--history-muted); font-size: .8125rem; }
.jbsadd-timeline { margin: 0; padding: 0; border: 0; }
.jbsadd-history-year {
    grid-template-columns: minmax(6rem, 8.75rem) minmax(0, 1fr);
    gap: 1.85rem;
    border: 0;
    border-top: 1px solid var(--history-rule);
    padding: 1.85rem 0 2.5rem;
}
.jbsadd-history-year::before { display: none; }
.jbsadd-history-year h2 { color: var(--history-accent); font-size: 1.625rem; line-height: 1.35; }
.jbsadd-history-year ol { position: relative; }
.jbsadd-history-year ol::before {
    content: "";
    position: absolute;
    inset: .6rem auto .6rem -.9rem;
    border-left: 1px solid var(--history-rule);
}
.jbsadd-history-year li {
    grid-template-columns: 6.25rem minmax(0, 1fr);
    gap: .9rem;
    padding: .2rem 0 1.1rem;
    line-height: 1.65;
}
.jbsadd-history-year li + li { border-top: 0; }
.jbsadd-event-date { font-size: .875rem; font-weight: 500; color: var(--history-muted); }
@media (max-width: 640px) {
    .jbsadd-history-document { width: min(100% - 2rem, 59.5rem); }
    .jbsadd-history-document .jbsadd-history-nav:not([hidden]), .jbsadd-year-track { gap: 8px; }
    .jbsadd-year-track button { flex-basis: calc((100% - 8px) / 2); font-size: 1rem; }
    .jbsadd-history-summary { margin-bottom: 1.75rem; }
    .jbsadd-history-year { grid-template-columns: 1fr; gap: 1rem; padding: 1.4rem 0; }
    .jbsadd-history-year ol { margin-left: .9rem; }
    .jbsadd-history-year li { grid-template-columns: 1fr; gap: .2rem; }
}

.jbsadd-history-document .jbsadd-history-nav:not([hidden]) {
    display: grid;
    grid-template-columns: 36px 52px minmax(0, 1fr) 36px;
}
.jbsadd-history-document .jbsadd-year-track { width: 100%; }

.jbsadd-history-document [data-year-track] {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 24px) / 3);
    grid-column: 3;
    grid-row: 1;
}
.jbsadd-history-document [data-year-track] > button { width: 100%; }
.jbsadd-history-document [data-year-next] { grid-column: 4; grid-row: 1; }
@media (max-width: 640px) {
    .jbsadd-history-document [data-year-track] { grid-auto-columns: calc((100% - 8px) / 2); }
}
