.portal-search {
    display: flex;
    align-items: center;
    flex: 0 1 220px;
    width: clamp(150px, 18vw, 220px);
    min-width: 150px;
    margin: 0 8px;
    padding: 3px;
    border: 1px solid rgba(255,255,255,0.35);
    border-radius: 5px;
    background: white;
}

.portal-search:focus-within { box-shadow: 0 0 0 2px rgba(64,155,210,0.45); }
.portal-search input { flex: 1; width: 100%; min-width: 0; padding: 7px 9px; border: 0; outline: 0; color: #1f2937; background: transparent; font: inherit; font-size: 13px; }
.portal-search input::placeholder { color: #6b7280; }
.portal-search button { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border: 0; border-radius: 4px; color: white; background: #007ac3; cursor: pointer; }
.portal-search button:hover { background: #0069a8; }
.portal-search button svg { width: 19px; height: 19px; fill: currentColor; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.portal-search-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 56px;
    padding: 8px 20px;
    background: #172433;
}

.portal-search-header .portal-search-brand {
    color: white;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.portal-search-header .portal-search { margin: 0; }

mark { padding: 0 2px; color: inherit; background: #ffe58a; }

@media (max-width: 1150px) {
    .site-header { gap: 8px; padding-right: 16px; padding-left: 16px; }
    .primary-nav { gap: 0; }
    .primary-nav a { padding-right: 6px; padding-left: 6px; font-size: 12px; }
    .nav-divider { margin-right: 2px; margin-left: 2px; }
    .portal-search { flex-basis: 180px; width: 180px; min-width: 140px; margin-right: 2px; margin-left: 2px; }
}

@media (max-width: 900px) {
    .primary-nav { display: none; }
    .portal-search { flex: 0 1 220px; width: clamp(150px, 28vw, 220px); }
}

@media (max-width: 600px) {
    .site-header { gap: 6px; padding-right: 12px; padding-left: 12px; }
    .header-logo { min-width: 0; gap: 6px; font-size: 12px; }
    .header-logo span { max-width: 150px; line-height: 1.2; }
    .logo-img { height: 24px; }
    .help-link { display: none; }
    .portal-search { flex: 0 1 160px; width: clamp(128px, 36vw, 180px); min-width: 128px; margin: 0; }
    .portal-search-header { gap: 8px; padding-right: 10px; padding-left: 10px; }
    .portal-search-header .portal-search-brand { max-width: 45%; font-size: 12px; line-height: 1.2; }
    .portal-search-header .portal-search { flex: 0 1 180px; width: clamp(128px, 42vw, 180px); }
}