body { background: #fff; color: #444; font: 15px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; margin: 0; padding: 0; }

.wrapper { width: 50%; margin: 0 auto; }

header { width: 12%; float: left; position: fixed; padding-top: 4rem; text-align: center; }

main { width: 72%; float: right; padding-top: 4rem; padding-bottom: 4rem; }

footer { width: 232px; float: left; position: fixed; bottom: 30px; text-align: center; color: #777; }

h1, h2, h3 { color: #043361; line-height: 1.15; }

h1 { font-size: 28px; font-weight: 500; margin: 0 0 20px; }

h2 { font-size: 23px; font-weight: 500; margin: 26px 0 12px; }

h3 { font-size: 18px; margin: 22px 0 10px; }

p, ul, ol, table { margin: 0 0 20px; }

a { color: #39c; text-decoration: none; }

a:hover, a:focus { color: #069; text-decoration: underline; }

strong { color: #222; font-weight: 600; }

img { max-width: 100%; }

table { border-collapse: collapse; width: 100%; }

th, td { border-bottom: 1px solid #e5e5e5; padding: 5px 10px; text-align: left; }

.image.avatar img { border-radius: 100%; width: 135px; }

.position { font-size: 1.1rem; margin-bottom: 4px; }

.profile-note { font-size: 0.9rem; }

.profile-links a { margin: 0 6px; }

.site-nav { display: flex; flex-direction: column; gap: 0.35rem; margin-top: 1rem; }

.site-nav a { color: #043361; }

.bibliography { padding-left: 1.25rem; }

.bibliography li { margin-bottom: 0.85rem; }

.goal-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }

.goal-card { border: 1px solid #e5e5e5; border-radius: 4px; padding: 1rem; }

progress { width: 100%; }

@media print, screen and (max-width: 960px) { .wrapper { width: auto; margin: 0; }
  body { padding: 15px; word-wrap: break-word; }
  header, main, footer { float: none; position: static; width: auto; }
  header { padding-top: 0; }
  main { border-top: 1px solid #e5e5e5; margin-top: 20px; padding-top: 20px; }
  .site-nav { flex-direction: row; flex-wrap: wrap; justify-content: center; } }
#bib-modal { width: min(800px, 90vw); max-height: 80vh; padding: 0; border: 1px solid #cccccc; border-radius: 6px; }

#bib-modal::backdrop { background: rgba(0, 0, 0, 0.5); }

.bib-modal-header { display: flex; justify-content: space-between; align-items: center; padding: 0.75rem 1rem; border-bottom: 1px solid #cccccc; }

#bib-close { border: 0; background: none; font-size: 1.5rem; cursor: pointer; }

#bib-content { margin: 0; padding: 1rem; max-height: 60vh; overflow: auto; white-space: pre-wrap; word-break: break-word; }

.bib-modal-footer { padding: 0.75rem 1rem; border-top: 1px solid #cccccc; text-align: right; }

.bib-view, #bib-copy { display: inline-block; margin-left: 0.4rem; padding: 0.25rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; background: transparent; color: inherit; font: inherit; font-size: 0.85em; line-height: 1.2; cursor: pointer; }

#bib-download { display: inline-block; margin-left: 0.4rem; padding: 0.25rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; background: transparent; color: inherit; font: inherit; font-size: 0.85em; line-height: 1.2; cursor: pointer; }

.bib-view:hover, #bib-copy:hover { background: #f2f2f2; border-color: #999; }

.bib-view:focus-visible, #bib-copy:focus-visible, #bib-close:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
