.container { max-width: 1040px; }
.portal-brand { min-width: 0; }
.locale-switch { width: 4.5rem; }
/* Tool stylesheets such as Senior's widen every .btn; the header keeps its own sizes. */
header .btn { min-width: 0; }
.portal-brand .portal-icon { flex-shrink: 0; }
.portal-icon rect { fill: var(--bs-body-bg); }
.portal-icon path { fill: var(--bs-body-color); }
[data-bs-theme=dark] .portal-icon rect { fill: var(--bs-tertiary-bg); }
.nav-link.active { font-weight: 600; text-decoration: underline; text-underline-offset: .3em; }
.card { border-radius: .75rem; }
.border-dashed { border-style: dashed; }
textarea { overflow-wrap: anywhere; }
.access-rows { background: var(--bs-body-bg); overflow: hidden; }
.access-rows > .row { margin: 0; padding: .75rem 0; }
.access-rows > .row:nth-child(odd) { background: rgba(var(--bs-emphasis-color-rgb), .05); }
.access-save { min-width: 80px; }
.bookmarklet-description > :last-child { margin-bottom: 0; }
.bookmarklet-link {
  --bs-btn-hover-color: var(--bs-btn-color);
  --bs-btn-hover-bg: var(--bs-btn-bg);
  --bs-btn-hover-border-color: var(--bs-btn-border-color);
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  cursor: grab;
}
/* No motion: buttons and other controls change state instantly. */
*,
*::before,
*::after {
  animation: none !important;
  transition: none !important;
}
/* The federation logo is dark on transparent; keep it on white in dark mode. */
[data-bs-theme=dark] .portal-logo { display: inline-block; background: #fff; border-radius: .5rem; padding: .25rem .5rem; }
.dropdown-item .theme-check { visibility: hidden; }
.dropdown-item.active .theme-check { visibility: visible; }
