html { scroll-padding-top: var(--site-header-height, 90px); }
.site-header { position: sticky; top: 0; z-index: 20; box-shadow: 0 3px 14px #062c2214; }
.skip-link { z-index: 21; }
.header-inner { position: relative; }
.software-menu > summary {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 44px;
    color: #e4f3eb;
    font-size: 15px;
    font-weight: 600;
    list-style: none;
    white-space: nowrap;
    cursor: pointer;
}
.software-menu > summary::-webkit-details-marker { display: none; }
.software-menu > summary:hover, .software-menu > summary[aria-current="page"], .software-menu[open] > summary { color: var(--mint); }
.software-menu > summary:focus-visible, .software-menu-panel button:focus-visible { outline: 3px solid #eea840; outline-offset: 3px; }
.software-menu-chevron { width: 7px; height: 7px; margin: -3px 2px 0; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
.software-menu[open] .software-menu-chevron { margin-top: 3px; transform: rotate(225deg); }
.software-menu-panel {
    position: absolute;
    z-index: 30;
    top: 100%;
    left: 50%;
    width: min(1240px, calc(100vw - 32px));
    transform: translateX(-50%);
    max-height: var(--software-menu-height, calc(100dvh - 100px));
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid var(--line);
    border-top: 3px solid var(--mint);
    border-radius: 0 0 14px 14px;
    background: #fff;
    color: var(--ink);
    box-shadow: 0 18px 45px #062c2230;
}
.software-menu-bar {
    position: sticky;
    z-index: 1;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 4px 14px;
    border-bottom: 1px solid var(--line);
    background: #edf7f1;
}
.site-header .software-menu-panel a { color: var(--ink); white-space: normal; }
.site-header .software-menu-panel a:hover, .site-header .software-menu-panel a[aria-current="page"] { color: var(--green-text); text-decoration: none; }
.site-header .software-menu-all { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; color: var(--green-text); font-size: 13px; }
.software-menu-bar button {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 32px;
    padding: 4px 10px;
    border: 1px solid #a4c3b1;
    border-radius: 7px;
    background: #fff;
    color: var(--green-dark);
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}
.software-menu-bar button:hover { background: var(--mint); }
.software-menu-groups { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; padding: 12px 14px; }
.software-menu-column { display: grid; align-content: start; gap: 16px; min-width: 0; }
.software-menu-column:first-child { grid-column: span 2; }
.software-menu-groups h2 { margin: 0; padding-bottom: 6px; border-bottom: 1px solid var(--line); color: var(--green-text); font-size: 13px; line-height: 18px; letter-spacing: -.015em; }
.software-menu-groups ul { display: grid; gap: 1.5px; margin: 5px 0 0; padding: 0; list-style: none; }
.software-menu-column:first-child ul { display: block; column-count: 2; column-gap: 12px; }
.software-menu-column:first-child li { break-inside: avoid; margin-bottom: 1.5px; }
.site-header .software-menu-groups a { display: flex; align-items: center; gap: 6px; min-height: 28px; padding: 4.5px 4px; border-radius: 5px; font-size: 13px; line-height: 17px; text-decoration: none; }
.software-menu-groups a:hover, .software-menu-groups a[aria-current="page"] { background: #edf7f1; }
.software-menu-item-text { display: grid; gap: 1px; min-width: 0; overflow-wrap: anywhere; }
.software-menu-item-text strong { font-size: inherit; }
.software-menu-item-text > span { color: var(--muted); font-size: 12px; font-weight: 400; line-height: 16px; }
.software-menu-groups img { flex: 0 0 34px; width: 34px; height: 34px; object-fit: contain; }

@media (max-width: 1000px) {
    .software-menu-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .software-menu-column:first-child { grid-column: auto; }
    .software-menu-column:first-child ul { display: grid; column-count: auto; }
}

@media (max-width: 760px) {
    .software-menu-groups { grid-template-columns: minmax(0, 1fr); gap: 18px; padding: 16px; }
    .software-menu-column { gap: 18px; }
    .software-menu-groups h2 { font-size: 14px; }
    .site-header .software-menu-groups a { min-height: 44px; padding: 9px 6px; font-size: 14px; }
    .software-menu-item-text { display: grid; gap: 2px; }
    .software-menu-item-text > span { margin-left: 0; font-size: 13px; }
    .software-menu-groups img { flex-basis: 35px; width: 35px; height: 35px; }
    .software-menu-bar { padding-inline: 16px; }
    .site-header .software-menu-all, .software-menu-bar button { min-height: 44px; }
    .software-menu-panel { max-height: var(--software-menu-height, calc(100dvh - 180px)); }
}
