/* Shared header-menu styles for the hand-maintained legal pages (F-077).
   Generated pages inline the same rules. Menu-only selectors — no overlap
   with the legal pages' own layout. */
:root { --surface: #16223A; }
/* ---- shared header menu ---- */
        .mi-svg { width: 20px; height: 20px; flex: 0 0 auto; }
        .mi-img { width: 20px; height: 20px; flex: 0 0 auto; object-fit: contain; border-radius: 4px; }
        .mi-ico { width: 24px; height: 22px; flex: 0 0 auto; display: inline-flex; }
        .mi-ico svg { width: 100%; height: 100%; }
        .mi { fill: currentColor; }
        .mis { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
        .mi-spacer { width: 20px; flex: 0 0 auto; }
        .site-header {
            position: sticky; top: 0; z-index: 50;
            display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 8px;
            padding: 8px 16px; background: rgba(15,24,41,0.94);
            -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
            border-bottom: 1px solid var(--outline);
        }
        .site-title { grid-column: 2; justify-self: center; display: inline-flex; align-items: center; gap: 10px; text-decoration: none; }
        .site-title img { width: 44px; height: 44px; border-radius: 11px; border: 1px solid var(--cyan); flex: 0 0 auto; }
        .site-title .st-text { display: flex; flex-direction: column; line-height: 1.15; text-align: left; }
        .site-title .st-name { color: var(--text); font-weight: 700; font-size: 26px; letter-spacing: 0.2px; }
        .site-title .st-sub { color: var(--cyan); font-weight: 600; font-size: 14px; }
        .site-menu { grid-column: 3; justify-self: end; position: relative; }
        .site-menu > summary {
            list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 7px;
            color: var(--text); padding: 7px 11px; border: 1px solid var(--outline);
            border-radius: 9px; font-size: 14px; font-weight: 600;
        }
        .site-menu > summary::-webkit-details-marker { display: none; }
        .menu-panel {
            position: absolute; right: 0; top: calc(100% + 8px); min-width: 252px;
            background: var(--surface); border: 1px solid var(--outline); border-radius: 12px;
            padding: 8px; box-shadow: 0 14px 34px rgba(0,0,0,0.45);
            display: flex; flex-direction: column; max-height: 82vh; overflow-y: auto; z-index: 60;
        }
        .menu-panel a, .menu-folder > summary {
            display: flex; align-items: center; gap: 11px; padding: 9px 10px; border-radius: 8px;
            color: var(--body); text-decoration: none; font-size: 15px;
        }
        .menu-panel a:hover, .menu-folder > summary:hover { background: rgba(34,199,242,0.10); color: var(--text); }
        .menu-panel a .mi-svg, .menu-panel a .mi-img, .menu-folder > summary .mi-svg { opacity: 0.9; }
        .menu-folder { display: flex; flex-direction: column; }
        .menu-folder > summary { list-style: none; cursor: pointer; }
        .menu-folder > summary::-webkit-details-marker { display: none; }
        .menu-folder > summary::after { content: "\25B8"; margin-left: auto; color: var(--muted); font-size: 12px; }
        .menu-folder[open] > summary::after { content: "\25BE"; }
        .menu-sub { display: flex; flex-direction: column; padding-left: 35px; }
        .menu-sub a { padding: 8px 10px; }
        .menu-sep { height: 1px; background: var(--outline); margin: 6px 6px; }
