/* Single shell navigation layout; authorization is server-side. */
#app .nav{display:flex;flex-direction:column;gap:12px;min-width:0}
.nf-nav-section{display:flex;flex-direction:column;gap:4px;min-width:0}
.nf-nav-heading{font-size:10px;letter-spacing:.055em;text-transform:uppercase;color:var(--muted);padding:10px 9px 3px;overflow-wrap:anywhere}
#app .nav button{width:100%;min-width:0;min-height:46px;height:auto;padding:12px 14px;white-space:normal;overflow-wrap:anywhere;display:flex;gap:10px;align-items:center;text-align:left}
#app .nav button::before{position:static;transform:none;display:inline-block;width:18px;min-width:18px;flex:0 0 18px;text-align:center;line-height:1}
.nf-nav-loading,.nf-nav-warning{padding:12px 8px;color:var(--muted);font-size:12px;min-height:46px}
.nf-nav-warning button{display:block;margin-top:8px}
#app .sidebar,#app .main,#content,#app .top>div{min-width:0;box-sizing:border-box}
#app .main{width:100%;max-width:100%}
/* Desktop shell: keep one version beneath the official logo, and an inset from the sidebar edge. */
@media(min-width:951px){
 #app>.sidebar>.nf-navigation-header{padding-left:14px;box-sizing:border-box}
 #app>.sidebar>.subbrand{display:none}
}
/* Single navigation owner, one compact fixed header on mobile. */
#app .nf-navigation-header{display:flex;align-items:center;gap:8px;min-width:0;flex:0 0 auto}
#app .nf-header-brand{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;flex:0 0 auto;min-width:0;gap:1px}
#app .nf-header-brand>.sidebar-logo{width:116px;max-height:40px;height:auto;object-fit:contain;margin:0}
#app .nf-header-version{font-size:9px;line-height:1.1;color:#9aa8b8;white-space:nowrap}
#app .nf-header-mode{display:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d9e4ef;font-size:11px;line-height:1.2}
#app .nf-navigation-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex:0 0 auto;margin-left:auto}
#app .nf-navigation-actions .nf-notification-slot{margin:0;flex:0 0 38px;width:38px;height:38px;display:flex;align-items:center}
#app .nf-navigation-actions .nf-conversation-slot{width:38px;min-height:38px;display:flex;align-items:center}
#app .nf-navigation-actions .nf-conversation-slot:empty{display:none}
#app .nf-conversation-slot [data-cc-inbox],#app .nf-navigation-actions .nf-global-cockpit-shortcut{display:flex;align-items:center;justify-content:center;width:38px;min-width:38px;height:38px;min-height:38px;padding:0;border:1px solid rgba(255,255,255,.17);border-radius:9px;background:#1b2936;color:#fff;cursor:pointer;font-size:20px;line-height:1}
#app .nf-navigation-actions .nf-global-cockpit-shortcut{display:none}
#app .nf-navigation-actions .nf-global-cockpit-shortcut[hidden]{display:none}
#app .nf-navigation-actions #nfV18Bell{background:#1b2936;border:1px solid #445369;box-shadow:none;color:#fff}
#app .nf-navigation-actions .nf-v18-bell-icon{display:flex;align-items:center;justify-content:center;color:#fff}
#app .nf-navigation-actions .nf-v18-bell-icon svg{display:block}
#app .nf-navigation-actions :is(button):focus-visible{outline:2px solid #f2b868;outline-offset:2px}
#app .nf-mobile-menu-toggle{display:none}

@media(max-width:950px){
 /* Fixed means the bar remains visible when document scrolling. The original sidebar is the only drawer. */
 #app{display:block;min-height:100dvh}
 #app>.sidebar{position:fixed;top:0;left:0;right:0;bottom:auto;width:100%;height:54px;min-height:54px;max-height:54px;z-index:7200;box-sizing:border-box;padding:6px 9px;background:#091520;border-right:0;border-bottom:1px solid #345064;overflow:hidden;display:flex;flex-direction:column;gap:0}
 #app>.main{margin-top:54px;min-width:0;width:100%;padding-top:12px}
 #app .nf-navigation-header{width:100%;height:41px;min-height:41px;gap:6px;flex-wrap:nowrap;flex:0 0 41px}
 #app .nf-header-brand{width:clamp(74px,23vw,112px);flex:0 0 auto}
 #app .nf-header-brand>.sidebar-logo{width:100%;max-height:34px}
 #app .nf-header-version{font-size:9px}
 #app .nf-header-mode{display:flex;align-items:center;justify-content:center;flex:1 1 auto;min-width:0;text-align:center;font-size:clamp(10px,2.8vw,12px);font-weight:700;color:#fff;line-height:1.15}
 #app .nf-header-mode:not(:empty){border:1px solid rgba(239,62,69,.65);border-radius:7px;padding:5px 3px;background:rgba(227,59,50,.12)}
 #app .nf-navigation-actions{gap:3px;flex:0 0 auto}
 #app .nf-navigation-actions .nf-global-cockpit-shortcut:not([hidden]){display:flex}
 #app .nf-navigation-actions .nf-notification-slot,#app .nf-navigation-actions .nf-conversation-slot{width:36px;height:36px;min-height:36px;flex:0 0 36px}
 #app .nf-navigation-actions :is([data-cc-inbox],.nf-global-cockpit-shortcut),#app .nf-navigation-actions #nfV18Bell{width:36px;min-width:36px;max-width:36px;height:36px;min-height:36px;padding:0;border-radius:8px;font-size:18px}
 #app .nf-mobile-menu-toggle{display:flex;align-items:center;justify-content:center;min-width:36px;width:36px;height:36px;min-height:36px;padding:0;border:1px solid #445369;border-radius:8px;background:#1b2936;color:#fff;font-size:20px;cursor:pointer}
 #app .nf-mobile-menu-toggle[aria-expanded="true"]{border-color:#a1b4c5}
 #app>.sidebar>.subbrand,#app>.sidebar>#sidebarMode,#app>.sidebar>.nav,#app>.sidebar>.account,#app>.sidebar>.v15-mobile-context-host,#app>.sidebar>.v15-relation-tools{display:none}
 /* Open only the existing navigation panel below the exact same stable one-line header. */
 #app>.sidebar.nf-mobile-open{bottom:0;height:100dvh;max-height:100dvh;overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(12px,env(safe-area-inset-bottom));gap:8px}
 #app>.sidebar.nf-mobile-open>.nf-navigation-header{position:sticky;top:-6px;z-index:2;background:#091520;flex:0 0 41px;border-bottom:1px solid #345064}
 #app>.sidebar.nf-mobile-open>.subbrand{display:none}
 #app>.sidebar.nf-mobile-open>#sidebarMode{display:grid;margin:0}
 #app>.sidebar.nf-mobile-open>.v15-mobile-context-host{display:block;order:3;margin:0}
 #app>.sidebar.nf-mobile-open>.v15-relation-tools{display:grid;order:4;margin:0}
 #app>.sidebar.nf-mobile-open>.nav{display:flex;flex-direction:column;gap:6px;order:5;margin:0;flex:0 0 auto;overflow:visible;padding:0}
 #app>.sidebar.nf-mobile-open>.account{display:block;order:6;margin:0}
 #app .nf-nav-section{display:flex;flex-direction:column;gap:3px}
 #app .nf-nav-heading{padding:8px 8px 3px}
 #app .sidebar.nf-mobile-open .nav button{width:100%;min-height:44px;border-left:2px solid transparent;border-bottom:0;white-space:normal}
 #app .sidebar.nf-mobile-open .nav button.active{border-left-color:var(--nf-accent);border-bottom:0}
 /* Mode is already shown in the fixed header. The redundant banner remains desktop-only. */
 #app #content>.mode-banner{display:none!important}
 body.nf-nav-menu-open{overflow:hidden}
}
@media(max-width:380px){
 #app>.sidebar{padding-left:5px;padding-right:5px}
 #app .nf-navigation-header{gap:3px}
 #app .nf-navigation-actions{gap:2px}
 #app .nf-header-brand{width:68px}
 #app .nf-header-brand>.sidebar-logo{max-height:29px}
 #app .nf-header-mode{font-size:9px;padding:4px 2px}
}

/* Events uses the same specificity as the nav reset, not a blank overridden icon. */
#app .nav #navEvents::before{content:"▦";display:inline-block;min-width:18px}

/* Shared controls: one geometry for current and future Portal dialogs. */
#modalRoot .modal-backdrop{padding:14px;overflow:auto}
#modalRoot .modal{max-height:calc(100vh - 28px)}
@supports(height:100dvh){#modalRoot .modal{max-height:calc(100dvh - 28px)}}
/* Optional push onboarding never obscures an active task dialog; consent state is untouched. */
body:has(#modalRoot .modal) .nf-v18-push-onboarding{display:none!important}
#modalRoot .modal .btn,#modalRoot .modal .primary{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;box-sizing:border-box;min-height:40px;height:auto;line-height:1.25;padding:10px 14px;margin:0;gap:8px}
#modalRoot .modal .row-actions,#modalRoot .modal .modal-actions,#modalRoot .modal .pc-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
#modalRoot .modal .modal-actions{margin-top:18px}
#modalRoot .modal input[type="checkbox"],#modalRoot .modal input[type="radio"]{appearance:auto;width:20px;min-width:20px;max-width:20px;height:20px;min-height:20px;padding:0;margin:0;flex:0 0 20px;accent-color:#ed1c24}
#modalRoot .modal .nf-choice{display:flex;align-items:center;gap:10px;min-height:40px;color:var(--text);cursor:pointer}
#modalRoot .modal .stack-form>label:not(.nf-choice){display:flex;flex-direction:column;gap:6px}
#modalRoot .modal .stack-form{gap:14px}
#modalRoot .modal fieldset{border:1px solid var(--line);border-radius:6px;padding:8px 12px;margin:0;min-width:0}
#modalRoot .modal legend{padding:0 5px;color:var(--muted)}
#modalRoot .modal .pc-people-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:2px 12px;max-height:190px;overflow:auto}
#modalRoot .modal select,#modalRoot .modal textarea,#modalRoot .modal input:not([type="checkbox"]):not([type="radio"]){box-sizing:border-box;max-width:100%;background:var(--panel,#0b1822);color:var(--text,#e8edf5);border:1px solid var(--line,#294452);border-radius:6px;min-height:42px;padding:10px 12px;line-height:1.4;color-scheme:dark}
#modalRoot .modal :is(input,select,textarea,button):focus-visible,#content [data-nf-card-link]:focus-visible{outline:2px solid #f66870;outline-offset:3px}
#modalRoot .modal form p:empty{display:none}
#content [data-nf-card-link]{cursor:pointer;transition:border-color .12s,background-color .12s}
#content [data-nf-card-link]:hover{border-color:#677985;background-color:#12232e}
#content a:not(.btn),#content a:not(.btn):visited{color:#a6d9ff;text-decoration:underline;text-underline-offset:2px}
#content a:not(.btn):hover{color:#e5f4ff}
#content>.mode-banner{position:sticky;top:8px;z-index:90;isolation:isolate;box-shadow:0 6px 16px rgba(0,0,0,.25);background:#0c1a24;align-items:center;gap:10px}
#content>.mode-banner>div:first-child{display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-width:0}
#content>.mode-banner .nf-global-home{flex:0 0 auto;min-height:36px;display:inline-flex;align-items:center;justify-content:center;line-height:1.25;white-space:normal}
.nf-detail-heading{display:flex;flex-direction:column;gap:10px;min-width:230px;max-width:460px}
.nf-responsibility-summary{padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--panel,#0b1822);font-size:13px;line-height:1.5}
.nf-responsibility-summary dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 12px;margin:0 0 10px}
.nf-responsibility-summary dt{color:var(--muted)}
.nf-responsibility-summary dd{margin:0;overflow-wrap:anywhere}
.nf-object-attribution{margin-top:8px;font-size:12px;color:var(--muted)}
.nf-history-more{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.nf-history-more>summary{cursor:pointer;min-height:36px;line-height:1.4;color:var(--text)}
.nf-history-more .nf-history-collapse{display:none}
.nf-history-more[open] .nf-history-expand{display:none}
.nf-history-more[open] .nf-history-collapse{display:inline}
#content>#v17TechnicalAssets,#content>.pc-personal-data{margin-top:20px}
.pc-personal-data .card+.card{margin-top:16px}
.pc-source-disclosure{margin-top:16px}
@media(max-width:950px){
 #content>.mode-banner{position:relative;top:auto;z-index:20;box-shadow:none;padding:10px;gap:8px}
 #content>.mode-banner>div:nth-child(2){display:none}
 #content>.mode-banner>div:first-child{gap:6px}
 #content>.mode-banner .nf-global-home{padding:7px 9px;font-size:11px;min-height:36px}
 #content .top{flex-wrap:wrap;gap:16px}
 .nf-detail-heading{min-width:0;max-width:none;width:100%}
 #modalRoot .modal .btn,#modalRoot .modal .primary{min-height:44px}
 /* Two ordinary footer actions must not inherit the card's 130px wrapping basis. */
 #modalRoot .modal .pc-actions,#modalRoot .modal .modal-actions{align-items:stretch}
 #modalRoot .modal .pc-actions>.btn,#modalRoot .modal .modal-actions>.btn{flex:1 1 0;min-width:0;white-space:normal}
}

/* Shared persistent scroll controls; primary modal/navigation overlays remain above them. */
.nf-back-to-top{position:fixed;left:var(--nf-return-center,50vw);right:auto;transform:translateX(-50%);bottom:max(18px,env(safe-area-inset-bottom));z-index:89;width:44px;height:44px;min-height:44px;margin:0!important;padding:0!important;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:24px;background:#142431;color:#fff;box-shadow:0 4px 16px #0006}
.nf-back-to-top[hidden],.nf-v18-notification-hub[hidden]{display:none!important}
.nf-back-to-top:focus-visible{outline:2px solid #fff;outline-offset:3px}
