body { background: #f6f3eb; color: #26332a; font-size: 16px; }
a, a:hover, a:focus { color: #19452f; text-decoration: underline; }
a.btn, a.portal-brand { text-decoration: none; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
    outline: 3px solid #985123; outline-offset: 3px;
}
.portal-header { background: #123522; border-bottom: 3px solid #80571d; }
.portal-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding-top: 18px; padding-bottom: 18px; }
.portal-brand, .portal-brand:hover, .portal-brand:focus { color: #fffefa; font-weight: 700; font-size: 1.25em; }
.portal-brand span { color: #f0d39a; }
.portal-main { padding-top: 28px; padding-bottom: 56px; }
h1 { color: #123522; font: 700 clamp(1.75rem, 5vw, 2.8rem)/1.15 Georgia, serif; margin-bottom: 20px; }
.portal-card { background: #fffefa; border: 1px solid #cbd4ca; border-radius: 8px; padding: clamp(16px, 4vw, 30px); }
.auth-card { max-width: 510px; }
.auth-link { margin-top: 16px; margin-bottom: 0; }
.portal-sections { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; padding: 0; list-style: none; }
.portal-sections a {
    display: block; padding: 9px 12px; border-radius: 5px;
    color: #fffefa; font-size: 0.95em; text-decoration: none;
}
.portal-sections a:hover, .portal-sections a:focus { background: #24543b; text-decoration: underline; }
.portal-sections a:focus-visible { outline-color: #f0d39a; }
.portal-sections a[aria-current="page"] { color: #123522; background: #f0d39a; font-weight: 700; }
.portal-section-heading { margin-top: 0; margin-bottom: 14px; color: #123522; font: 700 1.4em/1.2 Georgia, serif; }
.portal-history { margin-top: 24px; }
.portal-row-actions { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.btn-primary, .btn-primary:hover, .btn-primary:focus { background: #19452f; border-color: #123522; color: #fff; }
.skip-link { position: absolute; left: 12px; top: -100px; background: #fff; padding: 8px; z-index: 5; }
.skip-link:focus { top: 8px; }
td, th { overflow-wrap: anywhere; }
