/* Shared line-icon system. Colors follow the existing interface states. */
.ui-icon {
  display: inline-block;
  width: 1.15em;
  height: 1.15em;
  flex: 0 0 auto;
  vertical-align: -.18em;
  pointer-events: none;
  overflow: visible;
}
.ui-icon path, .ui-icon circle, .ui-icon rect, .ui-icon ellipse { vector-effect: non-scaling-stroke; }
:where(button, a, label, th) > .ui-icon + .ui-icon { margin-left: .15em; }
.step-bubble .ui-icon { width: 16px; height: 16px; }
.portal-brand { display: block; position: relative; flex: 0 0 auto; width: 148px; height: 86px; overflow: hidden; border-radius: 8px; }
/* The original logo contains transparent padding. Center its visible artwork
   without modifying, distorting or replacing the publisher's image. */
.portal-brand img { position: absolute; left: 50%; top: 50%; width: 190px; height: 190px; max-width: none; object-fit: contain; transform: translate(-50%, -45.4%); }
.public-portal-icons { --portal-header-height: 110px; }
.public-portal-icons .portal-header-bar { min-height: var(--portal-header-height); height: auto; gap: 20px; padding-block: 10px; }
.public-portal-icons .portal-header-badge { flex: 0 1 auto; gap: 8px; padding: 8px 13px; font-size: 12px; line-height: 1.4; }
.public-portal-icons .portal-header-badge > span:first-child { flex-shrink: 0; }
.public-portal-icons .portal-quick-nav { top: var(--portal-header-height); }
.public-portal-icons section[id] { scroll-margin-top: calc(var(--portal-header-height) + 64px); }
.public-portal-icons :is(button, a) .ui-icon { vertical-align: -.15em; }
.public-portal-icons #suggestDropdown .ui-icon { width: 15px; height: 15px; }
.public-portal-icons #portalSearchForm + div > span:first-child { display: inline-flex; align-items: center; gap: 4px; flex-shrink: 0; white-space: nowrap; }
@media (max-width: 639px) {
  .public-portal-icons { --portal-header-height: 88px; }
  .public-portal-icons .portal-header-bar { gap: 12px; padding-block: 9px; }
  .portal-brand { width: 116px; height: 70px; }
  .portal-brand img { width: 155px; height: 155px; }
  .public-portal-icons .portal-header-badge { gap: 6px; padding: 7px 9px; font-size: 10px; }
}
