/* Shared by both layouts and all palettes. */
:focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }
.utility-button { display:inline-flex; padding:10px; align-items:center; justify-content:center; }
.access-tools { position:relative; font-size: .875rem; }
.access-tools summary { cursor:pointer; padding:12px 4px; }
.access-panel { position:absolute; z-index:100; top:100%; right:0; width:min(290px,80vw); padding:16px; background:var(--page,#fff); color:var(--ink,#172b2c); border:1px solid currentColor; border-radius:12px; box-shadow:0 8px 24px #0002; }
.access-panel p { margin:0 0 12px; }
.access-panel button,.search-form button { cursor:pointer; font:inherit; padding:10px 14px; border:1px solid currentColor; border-radius:6px; background:var(--page,#fff); color:inherit; }
.access-panel > button { display:block; width:100%; margin-top:10px; text-align:left; }
.access-panel button[aria-pressed="true"] { font-weight:bold; border-width:3px; }
.access-actions { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.access-panel button:disabled { opacity:.5; cursor:default; }
.search-form { max-width:650px; font-size:1rem; }
.search-form label { display:block; margin-bottom:10px; }
.search-form > div { display:flex; gap:12px; flex-wrap:wrap; }
.search-form input { flex:1; min-width:0; width:100%; padding:12px; font:inherit; color:inherit; background:var(--page,#fff); border:1px solid currentColor; border-radius:6px; }
.search-results article { border-bottom:1px solid var(--line,#ccc); padding:20px 0; overflow-wrap:anywhere; }
.search-results h2 { font-size:1.5rem; }
.last-update { font-size:.8125rem; }
.grayscale { filter:grayscale(1); }
.high-contrast body, .high-contrast body * { background-color:#000 !important; background-image:none !important; color:#fff !important; border-color:#fff !important; text-shadow:none !important; box-shadow:none !important; }
.high-contrast a { color:#ffeb3b !important; text-decoration:underline !important; }
.high-contrast :focus-visible { outline:3px solid #ffeb3b !important; }
.high-contrast button[aria-pressed="true"] { background-color:#fff !important; color:#000 !important; }
html { scroll-padding-top:8rem; }
body { overflow-wrap:break-word; }
@media(max-width:980px) { .access-panel { position:static; width:100%; box-sizing:border-box; } }
@media(prefers-reduced-motion:reduce) { *, *::before, *::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; } }

html[style*="font-size"] .header-inner { min-height:80px; height:auto; }
.content-prose { overflow-wrap:anywhere; }
.content-prose table { display:block; max-width:100%; overflow-x:auto; }
.access-tools[open] { z-index:110; }
