*, *::before, *::after { box-sizing: border-box; }
html { font-family: system-ui, -apple-system, "Segoe UI", sans-serif; font-size: 100%; line-height: 1.5; color: #1a1a1a; background: #fff; }
body { margin: 0; }
a { color: #0645ad; text-underline-offset: 0.15em; }
a:visited { color: #5a2d91; }
:focus-visible { outline: 3px solid #1a5fb4; outline-offset: 2px; }
.skip { position: absolute; left: 0.5rem; top: -4rem; background: #fff; padding: 0.5rem 1rem; border: 2px solid #1a1a1a; z-index: 10; }
.skip:focus { top: 0.5rem; }
header { display: flex; flex-wrap: wrap; gap: 0.5rem 2rem; align-items: center; padding: 0.75rem 1.25rem; border-bottom: 1px solid #767676; }
header ul { list-style: none; display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; margin: 0; padding: 0; align-items: center; }
.brand { margin: 0; font-weight: 700; font-size: 1.25rem; }
[aria-current="page"] { font-weight: 700; }
main { max-width: 72rem; padding: 1rem 1.25rem 3rem; }
main:focus { outline: none; }
table { border-collapse: collapse; width: 100%; margin: 0.5rem 0 1.5rem; }
caption { text-align: left; font-weight: 600; padding-bottom: 0.25rem; }
th, td { text-align: left; vertical-align: top; padding: 0.4rem 0.6rem; border-bottom: 1px solid #c4c4c4; }
thead th { border-bottom: 2px solid #1a1a1a; }
tbody th { font-weight: 400; }
.counts { list-style: none; display: flex; flex-wrap: wrap; gap: 1rem; padding: 0; }
.counts li { border: 1px solid #767676; border-radius: 0.25rem; padding: 0.5rem 1rem; }
.counts .n { font-size: 1.5rem; font-weight: 700; }
.actions { list-style: none; display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; padding: 0; align-items: center; }
.meta { display: grid; grid-template-columns: max-content 1fr; gap: 0.25rem 1rem; }
.meta dt { font-weight: 600; }
.meta dd { margin: 0; }
.stack label, .field label { display: block; font-weight: 600; margin-top: 0.75rem; }
.field > p > label { display: inline; }
input:not([type=checkbox]):not([type=hidden]), select, textarea { font: inherit; padding: 0.4rem; border: 1px solid #595959; border-radius: 0.2rem; max-width: 100%; }
input[type=text], input[type=url], input[type=password], input:not([type]), textarea { width: 40rem; }
textarea { min-height: 6rem; }
button, .button { font: inherit; display: inline-block; padding: 0.45rem 1rem; border: 2px solid #1a5fb4; border-radius: 0.25rem; background: #1a5fb4; color: #fff; text-decoration: none; cursor: pointer; min-height: 2.75rem; }
.button:visited { color: #fff; }
header button { background: transparent; color: #0645ad; border-color: #767676; min-height: auto; padding: 0.2rem 0.6rem; }
button.danger { background: #a51d2d; border-color: #a51d2d; }
form.inline { display: inline-flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin: 0; }
form.inline label { display: inline; margin: 0; }
fieldset { border: 1px solid #767676; padding: 0.5rem 1rem 1rem; }
legend { font-weight: 600; padding: 0 0.25rem; }
.filters fieldset { display: flex; flex-wrap: wrap; gap: 0 1.5rem; align-items: flex-end; }
.filters p { margin: 0.25rem 0; }
.help { color: #4a4a4a; margin: 0.25rem 0; }
.error { color: #a51d2d; font-weight: 600; margin: 0.25rem 0; }
.has-error input, .has-error select, .has-error textarea { border: 2px solid #a51d2d; }
.error-summary { border: 3px solid #a51d2d; padding: 0.5rem 1rem; margin: 1rem 0; }
.error-summary h2 { margin-top: 0.25rem; }
.message { padding: 0.5rem 1rem; border-left: 5px solid #26a269; background: #f0faf3; }
.message.error { border-color: #a51d2d; background: #fdf0f1; }
.crumbs { margin-bottom: 0; }
blockquote { margin: 0.5rem 0; padding-left: 1rem; border-left: 4px solid #767676; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (max-width: 40rem) { input[type=text], input[type=url], input[type=password], input:not([type]), textarea { width: 100%; } table { display: block; overflow-x: auto; } }
@media (forced-colors: active) { button, .button { border: 2px solid ButtonText; } .counts li, .message { border: 1px solid CanvasText; } }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
