:root {
    --content-max-width: 1440px;
    --header-height-desktop: 150px;
    --header-height-mobile-portrait: 80px;
    --header-height-mobile-landscape: 48px;
}

.container {
    max-width: var(--content-max-width);
    margin: 0 auto; /* zentriert horizontal */
    padding: 0;
}

.header {
    height: var(--header-height-desktop);
    background-color: var(--color-green);
    background-image:
        repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.07) 0, rgba(255, 255, 255, 0.07) 1px, transparent 1px, transparent 72px),
        radial-gradient(120% 180% at 25% -20%, rgba(255, 255, 255, 0.25), transparent 60%),
        linear-gradient(115deg, var(--color-green-dark) 0%, var(--color-green) 38%, var(--color-green-light) 55%, var(--color-green) 74%, var(--color-green-dark) 100%);
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    display: flex;
    align-items: flex-end;
    box-shadow: var(--shadow-lg);
}

@media (max-width: 992px) {
    .header {
        height: var(--header-height-mobile-portrait);
    }
}

@media (max-height: 450px) {
    .header {
        height: var(--header-height-mobile-landscape);
    }
}

.header .container {;
    width: 100%;
    display: flex;
    justify-content: space-between;  /* left / right */
    align-items: flex-end;           /* bottom within header */
}

.header-menu-container {
    display: flex;
}

.main-menubar {
    padding: var(--gap-0_5) 0 !important;
}

.menu-container-left {
    margin-left: var(--gap-1);
    padding: 0;
    position: absolute;
    bottom: 0;
    left: 0;
}

.menu-container-center {
    padding: 0;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
}

.menu-container-right {
    margin-right: var(--gap-1);
    padding: 0;
    position: absolute;
    bottom: 0;
    right: 0;
}

.main-menu .ui-menubar {
    background: transparent !important; /* Hintergrund entfernen */
    border: none !important; /* Rand entfernen */
}

/* Main Menu > Menubar */
.main-menu .ui-menuitem-link.ui-state-hover {
    background: rgba(255, 255, 255, 0.2) !important; /* Hintergrund entfernen */
    border-radius: var(--radius-sm) !important;
}

.main-menu .ui-menuitem-icon,
.main-menu .ui-menuitem-text,
.main-menu .ui-menuitem-link .ui-icon {
    color: white !important;
}

/* Main Menu > User menu: only the icon is visible, the label stays available for screen readers */
.main-menu .user-menu > .ui-menuitem-link > .ui-menuitem-text {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

/* Main Menu > User menu: the submenu opens to the left, it is at the right edge of the window */
.main-menu .user-menu {
    position: relative;
}

.main-menu .user-menu > .ui-menu-child {
    left: auto !important;
    right: 0 !important;
}

/* Main Menu > Submenu: same shadow as the header */
.main-menu .ui-menu .ui-menu-list .ui-menu-child.ui-shadow,
.main-menu .ui-menu-child {
    box-shadow: var(--shadow-lg);
}

/* Main Menu > Submenu */
.main-menu .ui-menu-child .ui-menuitem-icon,
.main-menu .ui-menu-child .ui-menuitem-text,
.main-menu .ui-menu-child .ui-menuitem-link .ui-icon {
    color: var(--text-color-secondary) !important;
}

.main-menu .ui-menu-child .ui-menuitem-link:hover {
    background: var(--primary-50) !important;
    border-radius: var(--radius-sm);
}

.dropdown-menu.ui-menu {
    width: 16em !important;
}

.sidebar-container {
    padding: 0 !important;
}

.sidebar-menu {
    border: 0 !important;
}

h1.sidebar-menu-title {
    font-size: 32px;
    padding-left: var(--gap-1);
}

.sidebar-submenu-item {
    padding-left: var(--gap-2) !important;
}

.sidebar-divider {
    margin-top: 2em !important;
    margin-bottom: 1em !important;
}

.sidebar-menu .ui-menuitem-link:hover {
    background: var(--primary-50) !important;
}

.main-menu-title {
    color: white !important;
    font-weight: bold !important;
    margin-bottom: 8px;
    text-align: center;
}


.menu-container-right .ui-button {
    color: white !important;
}

/* sticky footer: on short pages the footer stays at the bottom of the viewport.
   padding instead of margin, so the header height is part of the 100dvh */
.content-wrapper {
    padding-top: var(--header-height-desktop);
    box-sizing: border-box;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
}

@media (max-width: 992px) {
    .content-wrapper {
        padding-top: var(--header-height-mobile-portrait);
    }
}

@media (max-height: 450px) {
    .content-wrapper {
        padding-top: var(--header-height-mobile-landscape);
    }
}

.content {;
    flex: 1 0 auto;
    padding: var(--gap-1);
}

.footer {
    padding: var(--gap-1);
}

/* desktop: version and links always have the same spacing */
.footer-content {
    display: flex;
    align-items: center;
    gap: 4em;
    flex-wrap: wrap;       /* wrap if too many links */
}

/* Version label stays on the left */
.version-label {
    flex-shrink: 0;        /* do not shrink */
}

/* All links side by side */
.footer-links {
    display: flex;         /* direct children horizontal */
    align-items: center;
    gap: 4em;
    flex-wrap: wrap;
}

.footer-links > div.release-notes {
    display: flex;
    align-items: center;
    gap: var(--gap-0_5);
}

/* Grid for mobile devices */
@media (max-width: 768px) {
    .footer-content {
        display: block;
    }

    .version-label {
        display: block;
        margin-bottom: var(--gap-1);
    }

    .footer-links {
        display: grid;
        grid-template-columns: repeat(1, 1fr); /* 1 column */
        gap: var(--gap-0_5); /* spacing between elements */
    }
}

.footer-text {
    font-size: var(--font-size-small) !important;
}
