diff --git a/pass/public/styles/base.less b/pass/public/styles/base.less
index a4e3401deba9c0abc21271b69d50223b717381dd..f2d72b9846e81298fd66c5d239609d3c3ebcb04f 100644
--- a/pass/public/styles/base.less
+++ b/pass/public/styles/base.less
@@ -158,14 +158,61 @@ button {
   }
 }
 
+@logo-break-point: 610px; // Breakpoint when nav items won't fit besides logo
+#nav-opener {
+  position: absolute;
+  left: -100%;
+  @media (max-width: @logo-break-point) {
+    + nav > label > svg > .line {
+      transition: rotate 300ms ease-in 0ms, opacity 0ms 300ms,
+        y 300ms ease-in 300ms, fill 300ms ease-in 300ms;
+      rotate: 0deg;
+      transform-origin: center;
+    }
+    &:checked {
+      + nav {
+        grid-template-areas: "logo key-management nav-opener" ". general .";
+        > label {
+          border-width: 0;
+          transition: border-width 0ms 0ms;
+
+          > svg {
+            fill: red;
+            > .line {
+              transition: y 300ms ease-in 0ms, rotate 300ms ease-in 300ms,
+                opacity 0ms 300ms, fill 300ms ease-in 300ms;
+              &.top {
+                y: 45px;
+                rotate: 45deg;
+              }
+
+              &.middle {
+                opacity: 0;
+              }
+
+              &.bottom {
+                y: 45px;
+                rotate: -45deg;
+              }
+            }
+          }
+        }
+
+        > ul.general {
+          display: flex;
+        }
+      }
+    }
+  }
+}
 nav#primary-nav {
-  @logo-break-point: 720px; // Breakpoint when nav items won't fit besides logo
   @nav-items-break-point: 560px; // Breakpoint when nav items won't fit into their own row
 
   background-color: @color-main;
   color: @color-main-font-color;
-  display: flex;
-  flex-wrap: wrap;
+  display: grid;
+  grid-template-areas: "logo general key-management";
+  grid-template-columns: auto 1fr 1fr;
   position: sticky;
   top: 0;
   z-index: 99999;
@@ -173,16 +220,19 @@ nav#primary-nav {
   gap: 0 2rem;
   padding: 0.5rem 1rem;
 
-  #page-logo a {
-    display: flex;
-    align-items: center;
-    gap: 0.5rem;
-    text-decoration: none;
-    color: inherit;
+  #page-logo {
+    grid-area: logo;
+    a {
+      display: flex;
+      align-items: center;
+      gap: 0.5rem;
+      text-decoration: none;
+      color: inherit;
 
-    > img {
-      width: 1.7rem;
-      filter: brightness(0) invert(1);
+      > img {
+        width: 1.7rem;
+        filter: brightness(0) invert(1);
+      }
     }
   }
 
@@ -224,61 +274,31 @@ nav#primary-nav {
         }
       }
     }
+
+    &.general {
+      grid-area: general;
+      gap: 0.5rem;
+    }
+    &.key-management {
+      grid-area: key-management;
+      justify-content: flex-end;
+    }
+  }
+
+  label {
+    grid-area: nav-opener;
   }
 
   @media (max-width: @logo-break-point) {
+    grid-template-areas: "logo key-management nav-opener";
+    grid-template-columns: auto 1fr auto;
     > ul {
-      max-height: 0;
-      visibility: hidden;
-      transition: max-height 0.5s, padding 0.5s;
-      justify-content: space-around;
-
-      > li.whitespace {
+      justify-content: center;
+      gap: 0.5rem;
+      &.general {
         display: none;
-      }
-    }
-
-    > input#nav-opener {
-      display: block;
-      visibility: hidden;
-      flex-grow: 1;
-
-      &:checked {
-        + label {
-          border-width: 0;
-          transition: border-width 0ms 0ms;
-
-          > svg {
-            fill: red;
-
-            > .line {
-              transition: y 300ms ease-in 0ms, rotate 300ms ease-in 300ms,
-                opacity 0ms 300ms, fill 300ms ease-in 300ms;
-
-              //y 300ms ease-in, rotate 300ms ease-in 300ms,
-              //  opacity 0ms 300ms, fill 300ms ease-in 300ms;
-              &.top {
-                y: 45px;
-                rotate: 45deg;
-              }
-
-              &.middle {
-                opacity: 0;
-              }
-
-              &.bottom {
-                y: 45px;
-                rotate: -45deg;
-              }
-            }
-          }
-        }
-
-        ~ ul {
-          max-height: 500px;
-          padding: 1rem 0;
-          visibility: visible;
-        }
+        flex-direction: column;
+        padding: 1rem;
       }
     }
 
@@ -293,29 +313,17 @@ nav#primary-nav {
 
       > svg {
         fill: var(--navbar-opener-color);
-
-        > .line {
-          transition: rotate 300ms ease-in 0ms, opacity 0ms 300ms,
-            y 300ms ease-in 300ms, fill 300ms ease-in 300ms;
-          rotate: 0deg;
-          transform-origin: center;
-        }
       }
     }
   }
 
-  @media (max-width: @nav-items-break-point) {
+  @media (max-width: 380px) {
+    gap: 0.5rem;
     > ul {
-      flex-direction: column;
-      width: 100%;
-      gap: 1rem;
-
-      > li {
-        text-align: center;
-
-        &.whitespace {
-          display: none;
-        }
+      justify-content: center;
+      .key-management {
+        gap: 0.5rem;
+        font-size: 0.9rem;
       }
     }
   }
diff --git a/pass/views/templates/page_header.ejs b/pass/views/templates/page_header.ejs
index 7f7a6a90b636fb92e79872a16257327229abee1d..f94c8b161b6ce8237581b7f4740e6fb48e7436c6 100644
--- a/pass/views/templates/page_header.ejs
+++ b/pass/views/templates/page_header.ejs
@@ -64,26 +64,26 @@
 </head>
 
 <body>
+  <input type="checkbox" name="nav-opener" id="nav-opener" aria-hidden="true">
   <nav id="primary-nav">
     <div id="page-logo">
       <a href="/">
         <img src="<%= baseDir _%>/images/metager-schloss-orange.svg" alt="MetaGer Schloss">
       </a>
     </div>
-    <input type="checkbox" name="nav-opener" id="nav-opener" aria-hidden="true">
     <label for="nav-opener">
-      <svg class="hamburger" viewBox="0 0 100 100" width="2rem" height="2rem">
+      <svg class="hamburger" viewBox="0 0 100 100" width="20px" height="20px">
         <rect class="line top" x="10" y="25" width="80" height="10" rx="5"></rect>
         <rect class="line middle" x="10" y="45" width="80" height="10" rx="5"></rect>
         <rect class="line bottom" x="10" y="65" width="80" height="10" rx="5"></rect>
       </svg>
     </label>
-    <ul>
+    <ul class="general">
       <li><a href="<%= baseDir _%>/"><%= req.t("leftnav.informations", { ns: 'pageheader'}) _%></a></li>
       <li><a href="<%= baseDir _%>/cost"><%= req.t("leftnav.price", { ns: 'pageheader'}) _%></a></li>
       <li><a href="<%= baseDir %>/help/faq"><%= req.t("leftnav.help", { ns: 'pageheader'}) _%></a></li>
-      <li class="whitespace"></li>
-      
+    </ul>
+    <ul class="key-management">
       <%_ if((typeof req.cookies !== "undefined" && typeof req.cookies.key !== "undefined") || typeof key !== "undefined") { _%>
       <li><a href="<%= baseDir _%>/key/enter"><%= req.t("rightnav.manage", { ns: 'pageheader'}) _%></a></li>
       <li>|</li>
@@ -93,5 +93,6 @@
       <li><a href="<%= baseDir _%>/key/create" class="button"><%= req.t("rightnav.start", { ns: 'pageheader'}) _%></a></li>
       <%_ } _%>
     </ul>
+    
   </nav>
   <main>
\ No newline at end of file