.portal-access-top[hidden] { display:none !important; }
body .portal-brand-bar { position:sticky; top:0; z-index:1050; overflow:visible; }
html { scroll-padding-top:140px; }
.portal-keyboard-skips a { position:fixed; top:8px; left:8px; z-index:3000; padding:12px; background:#fff; color:#111; transform:translateY(-200%); }
.portal-keyboard-skips a:focus { transform:none; }
.portal-utility-links button { border:0; background:transparent; color:inherit; font:inherit; cursor:pointer; }
.portal-access-menu { position:relative; flex-shrink:0; color:#49515a; }
.portal-access-menu summary { display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:#edf0f1; cursor:pointer; list-style:none; }
.portal-access-menu summary::-webkit-details-marker { display:none; }
.portal-access-menu summary svg { width:24px; height:24px; }
.portal-access-menu :is(summary,button):focus-visible { outline:2px solid #1557ae; outline-offset:3px; }
.portal-access-panel { position:absolute; right:0; top:calc(100% + 12px); width:340px; max-width:calc(100vw - 32px); border:1px solid #dce1e5; border-radius:6px; background:#fff; color:#49515a; box-shadow:0 6px 20px #0002; font-size:15px; font-weight:400; }
.portal-access-panel > div { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px; border-bottom:1px solid #dce1e5; }
.portal-access-panel button { min-height:40px; border:0; border-radius:6px; background:#edf0f1; color:#343d43; font:inherit; padding:8px 12px; cursor:pointer; }
.portal-access-controls { display:flex; gap:2px; }
.portal-access-controls button { width:38px; padding:6px; font-size:20px; }
.portal-access-panel > button { margin:12px; max-width:calc(100% - 24px); }
body:has(.portal-access-menu) .asw-menu-btn { display:none !important; }
@media(prefers-reduced-motion:no-preference) {
    .portal-access-menu[open] .portal-access-panel { transform-origin:top right; animation:portal-access-open 180ms ease-out both; }
    .portal-access-menu summary { transition:background-color 180ms ease,box-shadow 180ms ease; }
    .portal-access-menu[open] summary { background:#dce5ec; box-shadow:0 0 0 3px #edf0f1; }
    @keyframes portal-access-open { from { opacity:0; transform:translateY(-6px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
}
body.portal-high-contrast,body.portal-high-contrast :is(header,nav,main,footer,section,article,div,p,h1,h2,h3,a,button,input,summary,span,details,label,li,td,th) { background-color:#000 !important; color:#fff !important; border-color:#fff !important; text-shadow:none !important; }
body.portal-high-contrast a { color:#ffeb3b !important; text-decoration:underline; }
body.portal-high-contrast .portal-brand-bar :is(a,button,summary),body.portal-high-contrast .portal-bottom-nav :is(a,button) { color:#ffeb3b !important; -webkit-text-fill-color:#ffeb3b !important; }
body.portal-high-contrast :focus-visible { outline:3px solid #ffeb3b !important; }
@media(max-width:900px) {
    .portal-access-menu { margin-top:16px; }
    .portal-access-panel { position:static; margin-top:10px; width:100%; max-width:100%; }
    .portal-access-panel > div { flex-wrap:wrap; }
}
