:root { --kg-ink: #24332d; --kg-paper: #ffffff; --kg-accent: #286348; }
body { color: var(--kg-ink); background: var(--kg-paper); font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; line-height: 1.85; }
a { color: #205c43; text-underline-offset: .2em; }
a:hover { color: #103e2a; }
.skip-link { position: absolute; left: 1rem; top: -5rem; z-index: 2000; padding: .7rem; background: #eef2f0; }
.skip-link:focus { top: .5rem; }
.site-header { background: #ffffff; border-bottom: 1px solid #d6ded9; }
.navbar-brand { font-family: Georgia, serif; font-weight: 700; color: var(--kg-ink); font-size: 1.35rem; }
.navbar .nav-link { font-size: .9rem; padding: .75rem; }
.site-kicker { letter-spacing: .16em; font-size: .7rem; color: #53675b; text-transform: uppercase; }
.page-heading { padding: 3rem 0 2rem; border-bottom: 1px solid #d6ded9; margin-bottom: 2rem; }
h1 { font-weight: 750; font-size: clamp(1.8rem, 5vw, 3.2rem); line-height: 1.4; letter-spacing: -.025em; }
h2 { font-size: clamp(1.3rem, 3vw, 1.75rem); line-height: 1.65; margin: 2.25rem 0 1rem; }
h3 { font-size: 1.15rem; line-height: 1.7; margin: 1.8rem 0 .8rem; }
main { padding-bottom: 3rem; }
.article-content { background: #ffffff; padding: clamp(1rem, 4vw, 2.5rem); border: 1px solid #d6ded9; border-radius: .6rem; overflow-wrap: anywhere; }
.article-content p { margin: 0 0 1rem; }
.article-content strong { font-weight: 600; }
.article-content hr { border-color: #b4c2b9; margin: 1.75rem 0; }
.article-content img { max-width: 100%; height: auto; }
.article-content .legacy-image { display: block; max-height: 420px; object-fit: contain; margin: 1rem auto 2rem; }
.article-content :is(h2,h3,[id]) { scroll-margin-top: 1.5rem; }
.article-content a { overflow-wrap: anywhere; }
.article-content .unavailable-link { color: #626f67; text-decoration: underline dotted; text-underline-offset: .2em; }
.legacy-layout { margin: .6rem 0; }
.hero-note { display: inline-block; background: #edf3ee; border-radius: 2rem; padding: .2rem .9rem; margin-bottom: 1rem; font-size: .8rem; }
.quick-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; margin-bottom: 2rem; }
.quick-links a { background: #ffffff; border: 1px solid #cdd9d0; border-radius: .4rem; padding: 1rem; text-decoration: none; font-weight: 600; }
.quick-links a:hover { background: #edf3ee; }
.table-responsive { max-width: 100%; margin: 1rem 0 1.5rem; border: 1px solid #d1dcd4; border-radius: .4rem; }
.table { margin-bottom: 0; font-size: .9rem; --bs-table-striped-bg: #f6f8f6; --bs-table-border-color: #d1dcd4; }
.table :is(th,td) { padding: .7rem .8rem; }
.table th { color: #244f3a; background: #eef2f0; }
.table caption { caption-side: top; padding: .6rem .8rem; background: #f1f5f2; font-weight: 600; color: #74521f; }
.score-table { min-width: 1050px; text-align: center; }
.score-table :is(th,td):first-child { position: sticky; left: 0; background: #eef2f0; z-index: 1; }
.scroll-hint { font-size: .8rem; color: #52665a; margin: .5rem 0; }
.mobile-data { display: none; }
.data-card { border: 1px solid #d1dcd4; border-radius: .5rem; padding: 1rem; margin: .8rem 0; background: #fafcf9; }
.data-card h3 { margin: 0 0 .75rem; }
.data-card dl { display: grid; grid-template-columns: minmax(5rem, 1fr) minmax(0, 2fr); gap: .35rem .8rem; margin: 0; }
.data-card dt { font-size: .85rem; color: #40574a; font-weight: 500; }
.data-card dd { margin: 0; overflow-wrap: anywhere; }
details { margin: .8rem 0; }
summary { color: #205c43; cursor: pointer; padding: .4rem 0; font-weight: 600; }
.half-score { min-width: 570px; text-align: center; }
.half-score :is(th,td) { padding: .5rem; }
.year-controls { padding: 1rem; background: #f1f5f2; border-radius: .4rem; margin-bottom: 1.5rem; }
.year-block { border-top: 1px solid #d1dcd4; padding: 1rem 0; }
.year-block h3 { margin-top: .5rem; }
.month-entry { border-bottom: 1px solid #e0e7e1; padding: .7rem 0; }
.month-entry:last-child { border-bottom: 0; }
.site-footer { border-top: 1px solid #d6ded9; padding: 2rem 0; font-size: .85rem; color: #52665a; }
:focus-visible { outline: 3px solid #875014; outline-offset: 3px; }
@media (max-width: 991.98px) { .navbar .offcanvas { max-width: 88vw; } }
@media (max-width: 767.98px) {
 .page-heading { padding-top: 2rem; }
 .quick-links { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .quick-links a { padding: .75rem; font-size: .9rem; }
 .desktop-data { display: none; }
 .mobile-data { display: block; }
 .article-content { line-height: 1.95; }
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior: auto !important; transition: none !important; } }
h1 { text-wrap: balance; }
.archive-intro { color: #52665a; font-size: .8rem; padding-bottom: .75rem; }
.archive-intro h2 { font-size: .85rem; margin: .2rem 0; font-weight: 600; }
.archive-intro hr { margin: .75rem 0; }
.archive-heading { font-size: 1.1rem; color: #52665a; margin-top: .75rem; }
.news-article { padding: .5rem 0 1.75rem; border-bottom: 1px solid #d6ded9; }
.news-article h2 { font-size: 1.3rem; }

:root { color-scheme: light; --bs-body-color: #24332d; --bs-body-bg: #ffffff; --bs-border-color: #d1dcd4; --bs-emphasis-color: #182e22; --bs-secondary-color: #52665a; }
.site-header { background: #ffffff; }
.navbar { --bs-navbar-color: #40574a; --bs-navbar-hover-color: #875014; --bs-navbar-active-color: #875014; --bs-navbar-brand-hover-color: #875014; }
.navbar .offcanvas { --bs-offcanvas-bg: #ffffff; --bs-offcanvas-color: #24332d; }
.navbar-toggler { border-color: #aebfb3; }
.article-content { box-shadow: 0 12px 36px #16251c0a; }
.page-heading .site-kicker { color: #74521f; }
h1, h2, h3 { color: #1e3427; }
.hero-note { color: #315b42; border: 1px solid #c8d9ca; }
.table { --bs-table-color: #24332d; --bs-table-bg: #ffffff; --bs-table-striped-color: #24332d; --bs-table-hover-color: #182e22; --bs-table-hover-bg: #edf4ee; }
.form-select { background-color: #ffffff; border-color: #9eb5a5; color: #24332d; }
.form-select:focus { border-color: #396c4b; box-shadow: 0 0 0 .2rem #396c4b24; }
.quick-links a { transition: background-color .15s ease, border-color .15s ease; }
.quick-links a:hover { border-color: #9a804a; }
.year-block > h3 { color: #75521f; }
@media (prefers-reduced-motion: reduce) { .quick-links a { transition: none; } }

.structured-content { padding: 0; background: transparent; border: 0; box-shadow: none; }
.content-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; align-items: start; }
.content-sections { display: grid; gap: 1.5rem; }
.content-panel { min-width: 0; background: #ffffff; border: 1px solid #d5dfd7; border-radius: .8rem; overflow: hidden; }
.panel-heading { padding: 1.1rem 1.4rem; background: #f1f5f2; border-bottom: 1px solid #d5dfd7; }
.panel-heading h2 { margin: 0; font-size: 1.15rem; }
.panel-body { padding: 1.4rem; }
.panel-body > :first-child { margin-top: 0; }
.panel-body > :last-child { margin-bottom: 0; }
.category-heading { color: #52665a; font-size: .8rem !important; font-weight: 400; }
.category-label { display: block; font-size: 1.2rem; font-weight: 700; color: #1e3427; margin-bottom: .25rem; }
.content-grid .panel-body p { margin-bottom: .8rem; }
.content-grid .panel-body a[href] { display: inline-block; padding: .15rem 0; }
.standalone-news { padding: 0; border: 0; }
.standalone-news > :is(h2,h3) { margin: 0; padding: 1.1rem 1.4rem; font-size: 1.15rem; background: #f1f5f2; border-bottom: 1px solid #d5dfd7; }
.standalone-news > div { padding: 1.4rem; }
.standalone-news > p { margin: 1rem 1.4rem; }
.year-block { border: 1px solid #d5dfd7; border-radius: .5rem; padding: 0; margin: 1rem 0; overflow: hidden; background: #ffffff; }
.year-block > h3 { background: #f0f4f1; margin: 0; padding: 1rem; border-bottom: 1px solid #d5dfd7; }
.year-block > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; padding: 1rem; }
.month-entry { padding: 1rem; border: 1px solid #dbe3dc; background: #fafcf9; border-radius: .4rem; min-width: 0; }
.month-entry:last-child { border-bottom: 1px solid #dbe3dc; }
.month-entry > div:first-child { color: #75521f; font-weight: 600; }
.page-jumps { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1.5rem; }
.page-jumps a { border: 1px solid #b8c8bb; background: #f6f9f6; padding: .6rem 1rem; border-radius: .4rem; text-decoration: none; }
.original-intro { font-size: .8rem; }
@media (max-width: 767.98px) { .content-grid { grid-template-columns: minmax(0,1fr); } .panel-heading,.panel-body { padding: 1rem; } .year-block > div { grid-template-columns: minmax(0,1fr); padding: .75rem; } .standalone-news > :is(h2,h3),.standalone-news > div { padding: 1rem; } }

.source-page-heading h1 { font-size: clamp(1.3rem, 3vw, 2rem); line-height: 1.7; overflow-wrap: anywhere; text-wrap: pretty; }
.source-page-heading { padding-top: 2rem; }
.site-content .panel-heading :is(h2,h3,h4) { margin: 0; font-size: 1.15rem; line-height: 1.7; }
.site-content .panel-body { overflow-wrap: anywhere; }
.site-content .panel-body > .table-responsive:first-child { margin-top: 0; }
.site-content .source-table :is(th,td) { vertical-align: top; }
.site-content .source-table { width: 100%; }
.source-tone-red { color: #a52b2b; }
.source-tone-blue { color: #2255a2; }
.source-tone-green { color: #2c653c; }
.source-row-cards .data-card { margin-top: 0; }
.source-row-cards .data-card dd { min-width: 0; }
.source-mobile-tables .source-split-table { min-width: 35rem; }
.source-mobile-tables .half-score { min-width: 39rem; }
.source-mobile-tables :is(.source-split-table,.half-score) tr > :first-child { position: sticky; left: 0; background: #eef3ef; z-index: 1; }
.source-mobile-tables .table-responsive { margin: 0 0 1rem; }
.source-layout { min-width: 0; }
.source-anchor { display: block; scroll-margin-top: 1rem; }
@media (max-width: 767.98px) { .site-content .panel-body { padding: 1rem; } .source-row-cards .data-card dl { grid-template-columns: minmax(0,1fr) minmax(0,1.6fr); } }

.source-page-heading :is(.source-tone-red,.source-tone-blue,.source-tone-green), .site-content .panel-heading :is(.source-tone-red,.source-tone-blue,.source-tone-green) { color: inherit; }
.source-intro { color: #52665a; padding: .25rem 0 1rem; margin: -1rem 0 1rem; font-size: .8rem; }
.source-intro summary { color: #52665a; font-weight: 400; }
.source-intro .content-panel { margin-top: .75rem; }
.source-table-group { background: #f1f5f2; padding: .6rem .8rem; border-radius: .3rem; font-weight: 600; }

.rowspan-mobile .mobile-group-heading { padding: .65rem .85rem; margin: 1rem 0 .7rem; background: #edf3ee; border: 1px solid #c4d3c7; border-radius: .35rem; color: #284b34; font-weight: 650; line-height: 1.65; overflow-wrap: anywhere; }
.rowspan-mobile .mobile-group-key { display: inline; font-size: .8rem; font-weight: 400; color: #506557; margin-right: .7rem; }
.rowspan-mobile .mobile-group-value { display: inline; }
.rowspan-mobile .mobile-group-cell { text-align: left; white-space: normal; word-break: normal; overflow-wrap: anywhere; background: #edf3ee !important; color: #284b34; padding: .65rem .85rem; position: static; }
.rowspan-mobile .mobile-grouped-table { width: 100%; }
.rowspan-mobile .mobile-grouped-wide { min-width: 36rem; }
.rowspan-mobile .mobile-row-label { white-space: normal; min-width: 7rem; }
.rowspan-mobile .mobile-table-context { margin-bottom: .8rem; }
.rowspan-mobile .mobile-table-context .mobile-group-heading { margin-top: .4rem; }
.rowspan-mobile .data-card { min-width: 0; }

:root, [data-bs-theme="dark"] { color-scheme: light; --bs-body-color: #24332d; --bs-body-color-rgb: 36, 51, 45; --bs-body-bg: #ffffff; --bs-body-bg-rgb: 255, 255, 255; --bs-emphasis-color: #182e22; --bs-emphasis-color-rgb: 24, 46, 34; --bs-secondary-color: #52665a; --bs-secondary-color-rgb: 82, 102, 90; --bs-tertiary-color: #627568; --bs-secondary-bg: #f1f5f2; --bs-tertiary-bg: #f6f8f6; --bs-border-color: #d1dcd4; --bs-link-color: #205c43; --bs-link-color-rgb: 32, 92, 67; --bs-link-hover-color: #103e2a; --bs-heading-color: #1e3427; }
[data-bs-theme] .navbar-toggler-icon { --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2836,51,45,0.85%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
[data-bs-theme] .btn-close { --bs-btn-close-filter: none; filter: none; }
[data-bs-theme] .form-select { --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2324332d' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); }

:root, [data-bs-theme="dark"] { --kg-ink: #000000; --kg-accent: #000000; --bs-body-color: #000000; --bs-body-color-rgb: 0, 0, 0; --bs-emphasis-color: #000000; --bs-emphasis-color-rgb: 0, 0, 0; --bs-secondary-color: #000000; --bs-secondary-color-rgb: 0, 0, 0; --bs-tertiary-color: #000000; --bs-link-color: #000000; --bs-link-color-rgb: 0, 0, 0; --bs-link-hover-color: #000000; --bs-link-hover-color-rgb: 0, 0, 0; --bs-heading-color: #000000; }
body, body :where(*) { color: inherit !important; }
.table { --bs-table-color: #000000; --bs-table-striped-color: #000000; --bs-table-hover-color: #000000; --bs-table-active-color: #000000; }
.navbar { --bs-navbar-color: #000000; --bs-navbar-hover-color: #000000; --bs-navbar-active-color: #000000; --bs-navbar-brand-color: #000000; --bs-navbar-brand-hover-color: #000000; }

.source-color-000000 { color: #000000 !important; }
.source-color-00000e { color: #00000e !important; }
.source-color-000080 { color: #000080 !important; }
.source-color-0000a0 { color: #0000a0 !important; }
.source-color-0000e0 { color: #0000e0 !important; }
.source-color-0000ff { color: #0000ff !important; }
.source-color-000e0e { color: #000e0e !important; }
.source-color-008000 { color: #008000 !important; }
.source-color-008080 { color: #007b7b !important; }
.source-color-00a0e0 { color: #0076a6 !important; }
.source-color-00ff00 { color: #007f00 !important; }
.source-color-00ffff { color: #007a7a !important; }
.source-color-228b22 { color: #1f7e1f !important; }
.source-color-3399cc { color: #27749b !important; }
.source-color-40e0d0 { color: #237970 !important; }
.source-color-4477aa { color: #4171a2 !important; }
.source-color-4b0082 { color: #4b0082 !important; }
.source-color-800000 { color: #800000 !important; }
.source-color-800080 { color: #800080 !important; }
.source-color-808080 { color: #6e6e6e !important; }
.source-color-87ceeb { color: #4c7384 !important; }
.source-color-a000a0 { color: #a000a0 !important; }
.source-color-a000e0 { color: #a000e0 !important; }
.source-color-a0a0ea { color: #6a6a9a !important; }
.source-color-a52a2a { color: #a52a2a !important; }
.source-color-b00000 { color: #b00000 !important; }
.source-color-b00e00 { color: #b00e00 !important; }
.source-color-c0a0e0 { color: #7b668f !important; }
.source-color-c0ffee { color: #56736b !important; }
.source-color-cead00 { color: #826d00 !important; }
.source-color-da70d6 { color: #9d519a !important; }
.source-color-dda0dd { color: #876287 !important; }
.source-color-de00ee { color: #bf00cd !important; }
.source-color-edff00 { color: #6b7300 !important; }
.source-color-f0000a { color: #df0009 !important; }
.source-color-f0a16c { color: #926242 !important; }
.source-color-ff0000 { color: #de0000 !important; }
.source-color-ff00a7 { color: #d10089 !important; }
.source-color-ff00b0 { color: #d10090 !important; }
.source-color-ff00ff { color: #c400c4 !important; }
.source-color-ff1493 { color: #d11079 !important; }
.source-color-ff69b4 { color: #b0487c !important; }
.source-color-ff7f50 { color: #ab5536 !important; }
.source-color-ffa500 { color: #996300 !important; }
.source-color-ffb6c1 { color: #8a6268 !important; }
.source-color-ffc0cb { color: #85646a !important; }
.source-color-ffd700 { color: #7f6b00 !important; }
.source-color-ffff00 { color: #707000 !important; }
.source-color-ffffd6 { color: #6e6e5c !important; }
.source-color-ffffff { color: #000000 !important; }
