:root { color-scheme: light; font-family: Inter, ui-sans-serif, system-ui, sans-serif; color: #17211b; background: #f5f7f3; }
* { box-sizing: border-box; }
body { margin: 0; }
main { width: min(940px, calc(100% - 2rem)); margin: 0 auto; padding: 5rem 0; }
header { margin-bottom: 2rem; }
.eyebrow { color: #52705e; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
h1 { margin: 0; font-family: Georgia, serif; font-size: clamp(3rem, 9vw, 6rem); font-weight: 500; line-height: .95; }
.intro { max-width: 620px; color: #56625a; font-size: 1.15rem; }
form { padding: 1rem; border: 1px solid #d9dfd9; border-radius: 16px; background: white; box-shadow: 0 12px 40px #1e342012; }
label { display: grid; gap: .4rem; color: #425148; font-size: .9rem; font-weight: 650; }
.search-row { display: grid; grid-template-columns: 1fr auto; gap: .6rem; margin-top: .45rem; }
input, select, button { min-height: 48px; border: 1px solid #cbd4cc; border-radius: 9px; padding: .7rem .85rem; font: inherit; }
input:focus, select:focus { outline: 3px solid #b8d8c4; border-color: #356b4b; }
button { border-color: #204d35; background: #204d35; color: white; cursor: pointer; font-weight: 700; }
button:disabled { opacity: .45; cursor: default; }
#status { min-height: 1.5rem; color: #526058; }
.result { margin: .8rem 0; padding: 1.2rem; border: 1px solid #dce1dc; border-radius: 12px; background: white; }
.result h2 { margin: 0 0 .35rem; font-size: 1.25rem; }
.result h2 a { color: #17482e; }
.result p { margin: .35rem 0; color: #4f5a53; }
.meta { font-size: .85rem; }
#pagination { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 1.5rem; }
#pagination button { min-height: 40px; }
.site-footer { margin-top: 4rem; padding-top: 1rem; border-top: 1px solid #dce1dc; color: #6a756e; font-size: .78rem; text-align: center; }
.site-footer p { margin: .2rem 0; }
.site-footer nav { display: flex; flex-wrap: wrap; justify-content: center; gap: .35rem; }
.site-footer a { color: #52675a; text-underline-offset: 2px; }
.footer-link { min-height: auto; padding: 0; border: 0; border-radius: 0; color: #52675a; background: transparent; font-size: inherit; font-weight: 400; text-decoration: underline; text-underline-offset: 2px; }
.cookie-banner { position: fixed; z-index: 20; right: 1rem; bottom: 1rem; width: min(560px, calc(100% - 2rem)); padding: 1.25rem; border: 1px solid #cad5cc; border-radius: 16px; background: #fff; box-shadow: 0 20px 70px #10221938; }
.cookie-banner[hidden] { display: none; }
.cookie-banner h2 { margin: .15rem 0 .5rem; font: 1.55rem Georgia, serif; }
.cookie-banner p { margin: .35rem 0; color: #4f5a53; }
.cookie-kicker { color: #52705e !important; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.cookie-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; margin-top: 1rem; }
.cookie-actions button { width: 100%; }
.cookie-status { min-height: 1.2rem; font-size: .82rem; }
.entity-page section { margin: 1rem 0; padding: 1.25rem; border: 1px solid #dce1dc; border-radius: 12px; background: white; }
.entity-page h2 { margin-top: 0; font-family: Georgia, serif; font-size: 1.5rem; }
.entity-page dl { display: grid; grid-template-columns: minmax(9rem, .35fr) 1fr; gap: .65rem 1rem; }
.entity-page dt { color: #526058; font-weight: 700; }
.entity-page dd { margin: 0; }
.entity-page footer { margin-top: 2rem; }
body.modal-open { overflow: hidden; }
dialog { width: min(820px, calc(100% - 2rem)); max-height: min(88dvh, 900px); padding: 0; border: 0; border-radius: 20px; color: inherit; background: #f8faf7; box-shadow: 0 28px 90px #07180e66; }
dialog::backdrop { background: #102219a8; backdrop-filter: blur(5px); }
.dialog-shell { position: relative; min-height: 220px; }
.dialog-close { position: sticky; z-index: 2; top: .8rem; float: right; width: 44px; min-height: 44px; margin: .8rem .8rem 0 0; padding: 0; border-radius: 50%; font-size: 1.7rem; line-height: 1; }
#entity-dialog-content { max-height: min(88dvh, 900px); overflow: auto; padding: clamp(1.25rem, 4vw, 2.75rem); padding-top: .5rem; }
.entity-content header { margin: 0 3rem 1.4rem 0; }
.entity-content h1 { font-size: clamp(2.1rem, 6vw, 4.2rem); }
.entity-content section { margin: .8rem 0; padding: 1rem 1.1rem; border: 1px solid #dce1dc; border-radius: 12px; background: white; }
.entity-content h2 { margin: 0 0 .7rem; font: 1.35rem Georgia, serif; }
.entity-content dl { display: grid; grid-template-columns: minmax(9rem, .35fr) 1fr; gap: .65rem 1rem; margin-bottom: 0; }
.entity-content dt { color: #526058; font-weight: 700; }
.entity-content dd { margin: 0; }
.dialog-loading, .dialog-error { padding: 5rem 1rem; text-align: center; color: #526058; }
@media (max-width: 680px) { main { padding-top: 2.5rem; } .search-row { grid-template-columns: 1fr; } }
@media (max-width: 680px) { dialog { width: 100%; max-width: none; max-height: 92dvh; margin: auto 0 0; border-radius: 20px 20px 0 0; } #entity-dialog-content { max-height: 92dvh; padding: 1rem; padding-top: .25rem; } .entity-content dl { grid-template-columns: 1fr; gap: .15rem; } .entity-content dd { margin-bottom: .65rem; } }
@media (max-width: 520px) { .cookie-banner { right: 0; bottom: 0; width: 100%; border-radius: 16px 16px 0 0; } .cookie-actions { grid-template-columns: 1fr; } }
