:root { --ff-shell-height: 102px; --header-height: var(--ff-shell-height); }
.ff-shell { position: sticky; top: 0; z-index: 70; height: var(--ff-shell-height); border-bottom: 1px solid #cfdcdd; background: rgba(255,255,255,.985); color: var(--ink, #172326); font-family: Lato, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; letter-spacing: 0; }
.ff-shell * { box-sizing: border-box; letter-spacing: 0; }
.ff-shell a { color: inherit; text-decoration: none; }
.ff-shell button { font: inherit; letter-spacing: 0; cursor: pointer; }
.ff-shell-top { height: 58px; display: grid; grid-template-columns: 238px minmax(340px,1fr) auto; align-items: center; gap: 16px; padding: 0 18px; border-bottom: 1px solid #e2e9ea; }
.ff-shell-brand { min-width: 0; display: inline-flex; align-items: center; gap: 9px; width: fit-content; }
.ff-shell-brand img { width: 43px; height: 43px; flex: 0 0 auto; object-fit: contain; }
.ff-shell-brand span { min-width: 0; display: grid; line-height: 1.05; }
.ff-shell-brand strong { font-size: 18px; white-space: nowrap; }
.ff-shell-brand small { margin-top: 4px; color: var(--cadet-dark, #376f72); font-size: 9px; font-weight: 850; text-transform: uppercase; white-space: nowrap; }
.ff-shell-tenant .ff-shell-brand img { max-width: 72px; object-fit: contain; }
.ff-shell-brand-header .ff-shell-top { border-bottom-color: rgba(255,255,255,.16); background: var(--cadet-deep, #214f53); }
.ff-shell-brand-header .ff-shell-brand strong, .ff-shell-brand-header .ff-shell-brand small { color: white; }
.ff-shell-brand-header .ff-shell-status > span, .ff-shell-brand-header .ff-shell-status > a, .ff-shell-brand-header .ff-shell-status > button, .ff-shell-brand-header .ff-shell-actions > a, .ff-shell-brand-header .ff-shell-actions > button, .ff-shell-brand-header .ff-shell-tier { border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.96); }
.ff-shell-status, .ff-shell-actions { min-width: 0; display: flex; align-items: center; gap: 6px; }
.ff-shell-status { justify-content: flex-end; }
.ff-shell-actions { justify-content: flex-end; }
.ff-shell-language { height: 34px; display: inline-flex; align-items: center; gap: 5px; padding: 0 5px 0 8px; border: 1px solid #d7e1e2; border-radius: 5px; color: var(--cadet-deep, #214f53); background: white; }
.ff-shell-language select { width: 39px; height: 30px; padding: 0; border: 0; outline: 0; color: inherit; background: transparent; font-size: 10px; font-weight: 850; cursor: pointer; }
.ff-shell-status > span, .ff-shell-status > a, .ff-shell-status > button, .ff-shell-easy, .ff-shell-account, .ff-shell-tier, .ff-shell-icon { height: 34px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0 9px; border: 1px solid #d7e1e2; border-radius: 5px; background: white; color: #4d6064; font-size: 11px; white-space: nowrap; }
.ff-shell-status > button, .ff-shell-easy, .ff-shell-account, .ff-shell-icon { cursor: pointer; }
.ff-shell-status > a:hover, .ff-shell-status > button:hover, .ff-shell-easy:hover, .ff-shell-account:hover, .ff-shell-icon:hover { border-color: var(--cadet, #5f9ea0); color: var(--cadet-deep, #214f53); background: #eef7f7; }
.ff-shell-status i, .ff-shell-actions i { color: var(--cadet-dark, #376f72); font-size: 13px; }
.ff-shell-status strong { color: var(--cadet-deep, #214f53); font-size: 11px; }
.ff-shell-status small { font-size: 8px; }
.ff-shell-easy[aria-pressed="true"] { border-color: var(--cadet, #5f9ea0); background: #eef7f7; color: var(--cadet-deep, #214f53); }
.ff-shell-icon { position: relative; width: 34px; flex: 0 0 34px; padding: 0; }
.ff-shell-icon b { position: absolute; top: -5px; right: -5px; min-width: 16px; height: 16px; display: grid; place-items: center; border-radius: 50%; background: #c85b50; color: white; font-size: 8px; }
.ff-shell-tier { font-weight: 800; }
.ff-shell-tier-demo { border-color: #edcf9c; background: #fff3de; color: #8b5b16; }
.ff-shell-tier-online { border-color: #acd0d2; background: #edf7f7; color: #214f53; }
.ff-shell-tier-full { border-color: #b2dbc4; background: #e4f3eb; color: #256145; }
.ff-shell-account { max-width: 176px; font-weight: 750; }
.ff-shell-account span { overflow: hidden; text-overflow: ellipsis; }
.ff-shell-nav { height: 44px; display: flex; align-items: stretch; gap: 1px; padding: 0 18px; background: #f8fafa; }
.ff-shell-home, .ff-shell-direct, .ff-shell-help, .ff-shell-menu-trigger { height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 0 13px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: #536569; font-size: 12px; font-weight: 800; white-space: nowrap; }
.ff-shell-home:hover, .ff-shell-direct:hover, .ff-shell-help:hover, .ff-shell-menu-trigger:hover { color: var(--cadet-deep, #214f53); background: #edf5f5; }
.ff-shell-home.active, .ff-shell-menu.active > .ff-shell-menu-trigger, .ff-shell[data-shell-active="tree"] .ff-shell-direct[href="/journals/tree"], .ff-shell[data-shell-active="partners"] .ff-shell-direct[href="/partners.php"] { border-bottom-color: var(--cadet, #5f9ea0); color: var(--cadet-deep, #214f53); }
.ff-shell-menu { position: relative; }
.ff-shell-menu-trigger > i:last-child { font-size: 8px; transition: transform .15s ease; }
.ff-shell-menu.is-open .ff-shell-menu-trigger > i:last-child { transform: rotate(180deg); }
.ff-shell-dropdown { position: absolute; left: 0; top: 43px; z-index: 90; width: 330px; display: none; padding: 7px; border: 1px solid #cad9da; background: white; box-shadow: 0 15px 34px rgba(23,35,38,.16); }
.ff-shell-menu.is-open .ff-shell-dropdown { display: grid; }
.ff-shell-dropdown a { min-height: 58px; display: grid; grid-template-columns: 35px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 8px 9px; border-left: 3px solid transparent; }
.ff-shell-dropdown a:hover { border-left-color: var(--cadet, #5f9ea0); background: #f1f7f7; }
.ff-shell-dropdown a > i { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 4px; color: var(--cadet-deep, #214f53); background: #e3eff0; font-size: 15px; }
.ff-shell-dropdown a > span { min-width: 0; display: grid; }
.ff-shell-dropdown strong { color: #203034; font-size: 13px; }
.ff-shell-dropdown small { margin-top: 2px; overflow: hidden; color: #6a7b7f; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.ff-shell-dropdown b { min-width: 20px; height: 20px; display: grid; place-items: center; border-radius: 10px; background: var(--cadet-dark, #376f72); color: white; font-size: 8px; }
.ff-shell-nav-spacer { flex: 1; }
.ff-shell-help { padding-inline: 10px; }
.ff-footer { border-top: 1px solid #d7e1e2; background: white; color: #27383c; font-family: Lato, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; letter-spacing: 0; }
.ff-footer-inner { max-width: 1380px; display: grid; grid-template-columns: 1.45fr repeat(4,1fr); gap: 44px; margin: 0 auto; padding: 42px clamp(20px,5vw,72px) 34px; }
.ff-footer section { min-width: 0; display: grid; align-content: start; gap: 7px; }
.ff-footer h2 { margin: 0 0 6px; color: #4f6266; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.ff-footer a { width: fit-content; color: #526468; font-size: 12px; text-decoration: none; }
.ff-footer section > a:hover { color: var(--cadet-deep, #214f53); text-decoration: underline; text-underline-offset: 3px; }
.ff-footer p { margin: 0; color: #6c7d80; font-size: 10px; line-height: 1.55; }
.ff-footer-brand > a { display: inline-flex; align-items: center; gap: 9px; color: #172326; }
.ff-footer-brand img { width: 48px; height: 48px; object-fit: contain; }
.ff-footer-brand span { display: grid; }
.ff-footer-brand strong { font-size: 17px; }
.ff-footer-brand small { color: var(--cadet-dark, #376f72); font-size: 8px; font-weight: 850; text-transform: uppercase; }
.ff-footer-brand p { max-width: 260px; margin-top: 4px; }
.ff-footer-base { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 0 clamp(20px,5vw,72px); border-top: 1px solid #edf1f1; color: #7a898c; background: #f8fafa; font-size: 9px; }
.explorer-route-tree .ff-footer { display: none; }
.journal-tree-main { height: calc(100dvh - var(--ff-shell-height)); }
.publisher-profile, .journal-year-rail, .doi-side { top: var(--ff-shell-height); }
.journal-year-rail { max-height: calc(100vh - var(--ff-shell-height)); }
body.profile-depth-concise .ff-shell-advanced, body.easy-mode .ff-shell-advanced { display: none; }
.auth-page { display: block; padding: 0; }
.auth-page .auth-shell { margin: 46px auto; }
@media (max-width: 1180px) {
    .ff-shell-top { grid-template-columns: 210px 1fr auto; }
    .ff-shell-status > span:first-child, .ff-shell-status > a:last-child, .ff-shell-tier { display: none; }
    .ff-shell-direct span, .ff-shell-help span { display: none; }
    .ff-shell-direct, .ff-shell-help { width: 42px; padding: 0; }
}
@media (max-width: 760px) {
    :root { --ff-shell-height: 104px; --header-height: var(--ff-shell-height); }
    .ff-shell-top { height: 56px; grid-template-columns: minmax(150px,1fr) auto; gap: 7px; padding: 0 9px; }
    .ff-shell-brand img { width: 38px; height: 38px; }
    .ff-shell-brand strong { font-size: 16px; }
    .ff-shell-brand small { display: none; }
    .ff-shell-status, .ff-shell-tier, .ff-shell-account span, .ff-shell-easy span, .ff-shell-icon { display: none; }
    .ff-shell-language { height: 34px; padding-left: 6px; }
    .ff-shell-account, .ff-shell-easy { width: 36px; padding: 0; }
    .ff-shell-nav { height: 48px; padding: 0 4px; overflow: visible; }
    .ff-shell-home, .ff-shell-direct, .ff-shell-help, .ff-shell-menu-trigger { height: 48px; padding: 0 10px; font-size: 15px; }
    .ff-shell-home span, .ff-shell-direct span, .ff-shell-help span, .ff-shell-menu-trigger span { display: none; }
    .ff-shell-menu-trigger > i:last-child { display: none; }
    .ff-shell-dropdown { position: fixed; left: 8px; right: 8px; top: 101px; width: auto; max-height: calc(100vh - 112px); overflow-y: auto; }
    .ff-shell-nav-spacer { min-width: 0; }
    .ff-footer-inner { grid-template-columns: 1fr 1fr; gap: 28px 22px; padding: 32px 18px; }
    .ff-footer-brand { grid-column: 1 / -1; }
    .ff-footer-base { align-items: flex-start; flex-direction: column; padding-block: 10px; }
}

/* Florence 1.23.2: shared navigation and footer readability floor. */
.ff-shell-brand small { font-size: 11px; }
.ff-shell-language select { font-size: 12px; }
.ff-shell-status>span,
.ff-shell-status>a,
.ff-shell-status>button,
.ff-shell-easy,
.ff-shell-account,
.ff-shell-tier,
.ff-shell-icon,
.ff-shell-status strong { font-size: 12px; }
.ff-shell-status small { font-size: 10px; }
.ff-shell-home,
.ff-shell-direct,
.ff-shell-help,
.ff-shell-menu-trigger { font-size: 14px; }
.ff-shell-dropdown small { font-size: 12px; }
.ff-footer h2 { font-size: 12px; }
.ff-footer a { font-size: 14px; }
.ff-footer p { font-size: 12px; }
.ff-footer-brand small,
.ff-footer-base { font-size: 11px; }

@media (min-width: 761px) and (max-width: 1180px) {
    .ff-shell-home,
    .ff-shell-direct,
    .ff-shell-help,
    .ff-shell-menu-trigger { font-size: 13px; }
}

@media (max-width: 760px) {
    .ff-shell-home,
    .ff-shell-direct,
    .ff-shell-help,
    .ff-shell-menu-trigger { font-size: 15px; }
}

/* Search-only Florence: the public product is a literature search engine. */
.ff-shell-search-only .ff-shell-evidence-menu,
.ff-shell-search-only .ff-shell-apps-menu,
.ff-shell-search-only .ff-shell-research-menu .ff-shell-dropdown > a:not([href="/?view=research"]),
.ff-shell-search-only #easyToggle,
.ff-shell-search-only #openNotifications,
.ff-shell-search-only #profileButton,
.ff-shell-search-only .ff-shell-actions > a[href="/backoffice.php"] {
    display: none !important;
}

