/* Application and essential authentication headers only; no global Bootstrap overrides. */
.app-nav, .auth-header { color: var(--fa-ink-900); font-family: var(--fa-font); overflow-wrap: anywhere; }
.app-nav, .auth-header.ds-a { padding: 0; background: var(--fa-surface); border-bottom: 1px solid var(--fa-border); }
.navigation-container { width: 100%; max-width: var(--fa-content-wide); margin-inline: auto; padding-inline: 16px; }
.app-nav .app-nav-layout, .auth-header .auth-header-layout { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-block: 8px; }
.app-nav a, .auth-header a { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; max-width: 100%; color: var(--fa-ink-900); text-decoration: none; }
.app-nav :is(a, summary, select, button):focus-visible, .auth-header a:focus-visible { outline: 3px solid var(--fa-brand-700); outline-offset: 3px; }
.app-nav .app-wordmark { font-size: 1.25rem; font-weight: 700; }
.auth-header .navbar-brand { margin: 0; padding: 0; }
.app-nav ul { margin: 0; padding: 0; list-style: none; }
.app-nav li, .app-nav .app-menu-content { min-width: 0; }
.app-nav .nav-link { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: var(--fa-radius-control); line-height: 1.5; }
.app-nav .nav-link span { min-width: 0; }
.app-nav .nav-link > .bi { flex: 0 0 1em; width: 1em; text-align: center; }
.app-nav a:hover { color: var(--fa-brand-hover); background: var(--fa-canvas); }
.app-nav .nav-link[aria-current="page"] { color: var(--fa-brand-700); background: color-mix(in srgb, var(--fa-brand-700) 8%, var(--fa-surface)); font-weight: 600; text-decoration: underline; text-underline-offset: .2em; }
.app-nav .app-menu { display: contents; }
.app-nav summary { display: flex; align-items: center; justify-content: center; gap: 8px; min-width: 44px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--fa-control-border); border-radius: var(--fa-radius-control); cursor: pointer; list-style: none; }
.app-nav summary::-webkit-details-marker { display: none; }
.app-nav .app-menu-toggle { width: 44px; padding: 8px; margin-inline-start: auto; }
.app-nav .app-menu-toggle .bi { font-size: 24px; line-height: 1; }
.app-nav .app-menu-close-icon, .app-nav .app-menu[open] .app-menu-open-icon { display: none; }
.app-nav .app-menu[open] .app-menu-close-icon { display: block; }
.app-nav .app-menu::details-content { flex-basis: 100%; min-width: 0; order: 3; }
.app-nav .app-menu:not([open])::details-content, .app-nav .app-menu:not([open]) > .app-menu-content { display: none; }
.app-nav .app-menu-content { flex-basis: 100%; order: 3; }
.app-nav .app-primary-links, .app-nav .app-secondary-links { display: grid; gap: 4px; }
.app-nav .app-menu .app-secondary-links { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--fa-border); }
.app-nav .app-other { position: relative; flex: 0 0 auto; }
.app-nav .app-secondary-links .nav-link { color: var(--fa-ink-600); }
.app-nav .app-secondary-links .nav-link[aria-current="page"] { color: var(--fa-brand-700); }
.app-nav .app-other[open] .bi-chevron-down { transform: rotate(180deg); }
.app-nav .app-team-selector { flex: 0 1 clamp(100px, calc(100vw - 208px), 150px); min-width: 100px; max-width: 170px; margin-inline-start: auto; }
.app-nav .app-team-selector form { display: flex !important; flex-wrap: wrap; align-items: center; gap: 8px; }
.app-nav .app-team-selector label { margin: 0; font-size: .875rem; color: var(--fa-ink-600); font-weight: 600; }
.app-nav .app-team-selector select { flex: 1 1 0; width: 100%; max-width: 100%; text-overflow: ellipsis; min-width: 0; min-height: 44px; font: inherit; font-size: .875rem; background-color: var(--fa-surface); border-color: var(--fa-control-border); border-radius: var(--fa-radius-control); }
.app-nav .app-team-selector button { min-width: 44px; min-height: 44px; max-width: 100%; padding-inline: 8px; }
/* CSS determines presentation, including when JavaScript is disabled. */
.app-nav .navigation-desktop-only, .public-nav .navigation-desktop-only { display: none; }
@media (min-width: 992px) {
    .app-nav .navigation-mobile-only, .public-nav .navigation-mobile-only { display: none; }
    .app-nav .navigation-desktop-only, .public-nav .navigation-desktop-only { display: block; }
    .app-nav .app-nav-layout { gap: 8px 12px; }
    .app-nav .app-desktop-primary { flex: 1 1 0; min-width: 0; }
    .app-nav .app-desktop-primary .app-primary-links { display: flex; flex-wrap: wrap; gap: 4px; }
    .app-nav .app-desktop-primary li { max-width: 100%; }
    .app-nav .app-desktop-primary .nav-link { padding-inline: 8px; }
    .app-nav .app-team-selector { flex-basis: 150px; margin-inline-start: 0; }
    .app-nav .app-other summary.active { color: var(--fa-brand-700); font-weight: 600; text-decoration: underline; text-underline-offset: .2em; }
    .app-nav .app-other .app-secondary-links { position: absolute; top: calc(100% + 8px); right: 0; z-index: 1000; width: 224px; max-width: calc(100vw - 32px); max-height: 60dvh; overflow-y: auto; grid-template-columns: minmax(0, 1fr); padding: 8px; background: var(--fa-surface); border: 1px solid var(--fa-border); border-radius: var(--fa-radius-control); box-shadow: 0 8px 24px color-mix(in srgb, var(--fa-ink-900) 10%, transparent); }
}
@media (min-width: 992px) and (max-width: 1099px) {
    .app-nav .app-desktop-primary .nav-link > .bi { display: none; }
}
