/* One public header layout, shared by the SPA and authentication shell. */
body :is(.public-header,.auth-header){box-sizing:border-box;position:sticky;top:0;z-index:50;isolation:isolate;background:var(--gui-bg);color:var(--gui-text);display:flex;align-items:center;justify-content:space-between;width:100%;max-width:none;height:104px;min-height:104px;margin:0;padding:0 max(var(--gui-gutter),calc((100% - var(--gui-content-width))/2));gap:36px;border:0;border-bottom:1px solid #333}
body :is(.public-header,.auth-header) .public-logo{display:inline-flex;align-items:center;min-height:44px;font-size:43px;font-weight:700;line-height:1;letter-spacing:-2px!important;text-decoration:none;white-space:nowrap}
body :is(.public-header,.auth-header) .public-logo sup{display:inline-block;font-size:12px;line-height:1;letter-spacing:0;margin:4px 0 0 4px;vertical-align:top}
body :is(.public-header,.auth-header)>nav,body :is(.public-header,.auth-header) .public-header-actions{display:flex;align-items:center;gap:26px;font-size:15px;margin:0}
body :is(.public-header,.auth-header)>nav{gap:22px}
body :is(.public-header,.auth-header) a{text-decoration:none}
body :is(.public-header,.auth-header)>nav a{color:#bcbcbc}
body :is(.public-header,.auth-header) .public-header-actions>a{display:flex;align-items:center;min-height:44px;color:var(--gui-text)}
body :is(.public-header,.auth-header) .public-button{display:flex;align-items:center;justify-content:center;gap:24px;padding:13px 18px;min-height:44px;background:transparent;border:1px solid var(--gui-line);font-size:14px;line-height:20px;font-weight:400}
body :is(.public-header,.auth-header) .language-switch{display:inline-flex;align-items:center;gap:7px;margin-left:18px;flex-shrink:0;font-size:12px;white-space:nowrap}
body :is(.public-header,.auth-header) .language-switch button{border:0;background:transparent;padding:8px 2px;min-width:28px;min-height:44px;color:var(--gui-muted);font:inherit;cursor:pointer}
body :is(.public-header,.auth-header) .language-switch button[aria-pressed=true]{color:var(--gui-accent)}
body .auth-header .menu-trigger{display:none}
@media(max-width:1023px){
 body :is(.public-header,.auth-header){height:64px;min-height:64px;gap:12px;padding:env(safe-area-inset-top) var(--gui-gutter) 0}
 body :is(.public-header,.auth-header) .public-logo{font-size:32px;letter-spacing:-1.5px!important}
 body :is(.public-header,.auth-header) .public-logo sup{font-size:10px}
 body :is(.public-header,.auth-header)>nav,body :is(.public-header,.auth-header) .language-switch,body :is(.public-header,.auth-header) .public-header-actions>.public-button{display:none}
 body :is(.public-header,.auth-header) .public-header-actions{display:flex;margin-left:auto;gap:12px;font-size:14px}
 body :is(.public-header,.auth-header) :is(.menu-trigger,[data-mobile=menu].mobile-icon){display:flex;align-items:center;justify-content:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;margin:0;background:transparent;border:0;color:var(--gui-text)}
 body :is(.public-header,.auth-header) :is(.menu-trigger,[data-mobile=menu].mobile-icon) svg{width:24px;height:24px;stroke-width:1.7}
 body #auth-menu .menu-top{position:sticky;top:0;z-index:2;background:var(--gui-menu);padding:20px 20px 14px;align-items:center}
 body #auth-menu .brand{font-size:25px;font-weight:750;letter-spacing:-1px;line-height:1.5}
 body #auth-menu .menu-close{width:44px;height:44px;padding:0;display:grid;place-items:center}
 body #auth-menu .mobile-navigation-links a{box-sizing:border-box;color:var(--gui-text)}
 body #auth-menu .mobile-navigation-secondary a{color:var(--gui-text)}
 body #auth-menu .mobile-navigation-secondary .mobile-menu-cta{color:var(--gui-ink)}
}

/* Shared navigation feedback: pointer, keyboard, press and current page. */
body :is(.public-header,.auth-header,.concept-header)>nav a{
 display:inline-flex;align-items:center;min-height:44px;position:relative;
 transition:color 160ms ease,background-color 160ms ease,transform 120ms ease;
 text-decoration:none;
}
body :is(.public-header,.auth-header,.concept-header)>nav a::after{
 content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
 background:var(--gui-accent);transform:scaleX(0);transform-origin:left;
 transition:transform 180ms ease;
}
body :is(.public-header,.auth-header,.concept-header)>nav a:is([aria-current=page],.active){color:var(--gui-accent)}
body :is(.public-header,.auth-header,.concept-header)>nav a:is([aria-current=page],.active)::after{transform:scaleX(1)}
body :is(.public-header-actions,.concept-header-right,.language-switch,.mobile-navigation-links,.mobile-navigation-secondary,.mobile-navigation-languages,.mobile-bottom-nav,.cm-sidebar nav,.sa-sidebar nav,.account-menu-panel) :is(a,button),
body :is(.menu-trigger,[data-mobile=menu],.menu-close,.mobile-navigation .icon-button){
 transition:color 160ms ease,background-color 160ms ease,transform 120ms ease,box-shadow 160ms ease;
}
body .mobile-navigation-links a>svg:last-child{transition:transform 180ms ease;color:inherit}
@media(hover:hover) and (pointer:fine){
 body :is(.public-header,.auth-header,.concept-header)>nav a:hover{color:var(--gui-accent)}
 body :is(.public-header,.auth-header,.concept-header)>nav a:hover::after{transform:scaleX(1)}
 body :is(.public-header-actions,.concept-header-right,.language-switch) :is(a,button):hover{color:var(--gui-accent)}
 body :is(.public-header,.auth-header) .public-header-actions>.public-button:hover{background:var(--gui-accent);color:var(--gui-ink)}
 body :is(#auth-menu,.mobile-navigation,.mobile-bottom-nav,.cm-sidebar,.sa-sidebar) :is(a,button):hover{background:var(--gui-control);color:var(--gui-accent)}
 body :is(#auth-menu,.mobile-navigation) :is(.mobile-navigation-links,.mobile-navigation-secondary) a:is([aria-current=page],.active,.mobile-menu-cta):hover{background:var(--gui-accent-hover);color:var(--gui-ink)}
 body .mobile-navigation-links a:hover>svg:last-child{transform:translateX(4px)}
 body :is(.menu-trigger,[data-mobile=menu],.menu-close,.mobile-navigation .icon-button):hover{color:var(--gui-accent);background:var(--gui-control)}
}
body :is(.public-header,.auth-header,.concept-header)>nav a:active{transform:translateY(1px);color:var(--gui-accent)}
body :is(dialog.mobile-navigation,#auth-menu,.mobile-bottom-nav) :is(.mobile-navigation-links,.mobile-navigation-secondary,.mobile-navigation-languages) :is(a,button):active{transform:scale(.98);background:var(--gui-accent);color:var(--gui-ink)}
body :is(.public-header-actions,.concept-header-right) :is(a,button):active,
body :is(.menu-trigger,[data-mobile=menu],.menu-close,.mobile-navigation .icon-button):active{transform:scale(.96)}
body :is(.public-header,.auth-header,.concept-header,.mobile-navigation-links,.mobile-navigation-secondary,.mobile-navigation-languages,.mobile-bottom-nav,.cm-sidebar nav,.sa-sidebar nav) :is(a,button):focus-visible{outline:2px solid var(--gui-accent);outline-offset:4px}
@media(prefers-reduced-motion:reduce){
 body :is(.public-header,.auth-header,.concept-header,.mobile-navigation,.mobile-bottom-nav,.cm-sidebar,.sa-sidebar,#auth-menu) :is(a,button,svg),
 body :is(.public-header,.auth-header,.concept-header)>nav a::after{transition:none!important;transform:none!important}
 body :is(.public-header,.auth-header,.concept-header)>nav a:not([aria-current=page]):not(.active)::after{opacity:0}
 body :is(.public-header,.auth-header,.concept-header)>nav a:hover::after{opacity:1}
}
