/* AwesomeApply — single hand-written stylesheet, mobile first. No build step. */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font: 16px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color: #1d232a; background: #f6f7f9; }
a { color: #0b5cad; }
/* Focus: dark ring (≥ 3:1 against white and #f6f7f9, WCAG 1.4.11 / 2.4.7) with a
   light halo so it also stays visible next to blue/red buttons. */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible { outline: 3px solid #1d232a; outline-offset: 2px; box-shadow: 0 0 0 5px #fff; }
.skip-link { position: absolute; left: .5rem; top: -10rem; z-index: 10; padding: .5rem 1rem; background: #fff; color: #0b5cad; font-weight: 700; border-radius: .375rem; }
.skip-link:focus { top: .5rem; }
main[tabindex]:focus, main[tabindex]:focus-visible { outline: none; box-shadow: none; }
.site-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .75rem 1rem; background: #fff; border-bottom: 1px solid #dde1e6; flex-wrap: wrap; }
.site-header .brand { font-weight: 700; text-decoration: none; color: inherit; }
.site-header nav { display: flex; gap: .75rem; flex-wrap: wrap; align-items: center; }
.container { max-width: 64rem; margin: 0 auto; padding: 1rem; }
.card { background: #fff; border: 1px solid #dde1e6; border-radius: .5rem; padding: 1rem; margin: 0 0 1rem; }
.meta { color: #56606b; font-size: .925rem; }
dl.meta { display: grid; grid-template-columns: max-content 1fr; gap: .25rem 1rem; }
dl.meta dd { margin: 0; }
/* Reflow at 320 CSS px (WCAG 1.4.10): long emails, ids and codes wrap. */
dd, td, code, .meta { overflow-wrap: anywhere; }
.preview-banner { background: #fff4ce; color: #1f1f1f; border-bottom: 2px solid #8a6d00; padding: .6rem 1rem; }
.preview-banner p { margin: 0; max-width: 60rem; }
.flash { background: #e8f4ea; border: 1px solid #9fd0a8; padding: .75rem; border-radius: .5rem; }
.errors { background: #fdecec; border: 1px solid #b42318; padding: .75rem; border-radius: .5rem; margin: 0 0 1rem; }
.errors h2 { font-size: 1.1rem; margin: 0 0 .5rem; }
.errors ul { margin: 0; padding-left: 1.25rem; }
.errors a { color: #8a1c13; font-weight: 600; }
.field-error { color: #8a1c13; font-weight: 600; margin: .25rem 0 0; }
.warning { background: #fff6e0; border: 1px solid #f2d18a; padding: .75rem; border-radius: .5rem; }
label { display: block; font-weight: 600; margin-top: .75rem; }
/* Field borders ≥ 3:1 against white (WCAG 1.4.11). */
input[type=text], input[type=email], input[type=password], input[type=tel], input[type=url], input[type=date], input[type=datetime-local], input[type=number], select, textarea { width: 100%; padding: .5rem; border: 1px solid #6b7682; border-radius: .375rem; font: inherit; }
input[aria-invalid=true], textarea[aria-invalid=true], select[aria-invalid=true] { border: 2px solid #b42318; }
input, select, textarea { max-width: 100%; min-width: 0; }
textarea { min-height: 6rem; }
.check { display: flex; gap: .5rem; align-items: flex-start; font-weight: 400; }
/* 24 × 24 CSS px minimum target (WCAG 2.5.8). */
input[type=checkbox] { flex: 0 0 auto; width: 1.5rem; height: 1.5rem; margin: 0; accent-color: #0b5cad; }
button, .button { display: inline-block; margin-top: 1rem; padding: .55rem 1rem; border: 0; border-radius: .375rem; background: #0b5cad; color: #fff; font: inherit; cursor: pointer; text-decoration: none; }
button.secondary { background: #56606b; }
button.danger { background: #b42318; }
table { width: 100%; border-collapse: collapse; background: #fff; }
caption { text-align: left; font-weight: 600; padding: .5rem 0; }
th, td { text-align: left; padding: .5rem; border-bottom: 1px solid #dde1e6; vertical-align: top; }
/* position: relative keeps absolutely positioned .sr-only text inside the scroll region. */
.table-wrap { position: relative; overflow-x: auto; }
.badge { display: inline-block; padding: .1rem .5rem; border-radius: 1rem; background: #e7ecf2; font-size: .85rem; }
.badge.overdue { background: #fdecec; color: #8a1c13; }
.grid { display: grid; gap: 1rem; }
.grid > * { min-width: 0; }
fieldset { min-width: 0; }
@media (min-width: 48rem) { .grid.two { grid-template-columns: 1fr 1fr; } }
.inline-form { display: inline; }
.pagination ul { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; }
.pagination a, .pagination span { display: inline-block; min-width: 2.5rem; padding: .4rem .6rem; text-align: center; }
.pagination [aria-current] { font-weight: 700; border: 1px solid #1d232a; border-radius: .375rem; }
.embed { background: transparent; }
.embed-list { list-style: none; margin: 0; padding: 0; }
.embed-list li { padding: .5rem 0; border-bottom: 1px solid #dde1e6; }
.embed-list .meta { display: block; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
