/* Full-screen mobile navigation: one scroll surface, persistent controls. */
body.is-scroll-locked { overflow: hidden; }
body .mobile-navigation {
    position: fixed; inset: 0; z-index: 10070; padding: 0;
    opacity: 0; visibility: hidden; transition: opacity 200ms ease, visibility 200ms ease;
    background: var(--bg-soft, #fff);
}
body .mobile-navigation.active { opacity: 1; visibility: visible; }
body .mobile-navigation .mobile-menu-panel {
    position: absolute; inset: 0; inline-size: 100%; max-inline-size: none;
    width: 100%; height: 100dvh; max-block-size: 100dvh; padding: 0;
    display: grid; grid-template-rows: auto minmax(0, 1fr) auto;
    overflow: hidden; background: var(--bg-soft, #fff);
    transform: translateX(24px); transition: transform 200ms ease;
}
body .mobile-navigation.active .mobile-menu-panel { transform: none; }
body .mobile-navigation .mobile-nav-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: max(16px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) 16px max(20px, env(safe-area-inset-left));
    border-bottom: 1px solid var(--line, #e2e8f0);
}
body .mobile-navigation .mobile-nav-header img { width: auto; height: 36px; object-fit: contain; }
body .mobile-navigation .mobile-menu-close {
    position: static; width: 44px; height: 44px; flex-shrink: 0;
    font-size: 30px; font-weight: 400; line-height: 1; border-radius: 12px;
    display: flex; align-items: center; justify-content: center; border: 0;
    color: var(--muted); background: var(--blue-tint, #edf1f8); cursor: pointer;
}
body .mobile-navigation .mobile-menu-nav {
    margin: 0; padding: 20px max(20px, env(safe-area-inset-right)) 24px max(20px, env(safe-area-inset-left));
    display: block; overflow-y: auto; overscroll-behavior: contain;
}
body .mobile-navigation :is(.mobile-nav-link, .mobile-nav-toggle) {
    display: flex; width: 100%; align-items: center; justify-content: space-between;
    gap: 16px; min-height: 54px; padding: 12px 14px; border: 0; border-radius: 10px;
    text-align: right; font: inherit; font-size: 17px; font-weight: 700;
    line-height: 1.7; color: var(--ink, #17364e); background: transparent;
    cursor: pointer; text-decoration: none; overflow-wrap: anywhere;
}
body .mobile-navigation :is(.mobile-nav-link, .mobile-nav-toggle):hover { background: var(--blue-tint, #edf1f8); }
body .mobile-navigation .mobile-nav-toggle[aria-expanded="true"],
body .mobile-navigation .mobile-nav-link.active { color: var(--blue-soft); background: var(--blue-tint, #edf1f8); }
body .mobile-navigation .mobile-nav-link.active { box-shadow: inset -3px 0 var(--blue-soft); }
body .mobile-navigation .mobile-nav-children {
    margin: 8px 14px 16px 0; padding-inline-start: 12px;
    border-inline-start: 1px solid var(--line, #e2e8f0);
}
body .mobile-navigation [hidden] { display: none !important; }
body .mobile-navigation .mobile-nav-children :is(.mobile-nav-link, .mobile-nav-toggle) { font-size: 14px; min-height: 48px; font-weight: 500; padding: 10px 12px; }
body .mobile-navigation .mobile-nav-category > .mobile-nav-toggle { font-weight: 700; }
body .mobile-navigation .mobile-nav-chevron {
    width: 8px; height: 8px; border: solid currentColor; border-width: 0 1.5px 1.5px 0;
    transform: rotate(45deg); transition: transform 160ms ease; flex-shrink: 0; margin: 0 4px;
}
body .mobile-navigation [aria-expanded="true"] > .mobile-nav-chevron { transform: rotate(225deg); }
body .mobile-navigation .mobile-nav-arrow { width: 6px; height: 6px; border: solid currentColor; border-width: 0 0 1.5px 1.5px; transform: rotate(45deg); opacity: .55; flex-shrink: 0; margin-inline: 4px; }
body .mobile-navigation .mobile-nav-secondary { border-top: 1px solid var(--line, #e2e8f0); padding-top: 14px; margin-top: 20px; }
body .mobile-navigation .mobile-nav-secondary .mobile-nav-link { font-size: 14px; font-weight: 500; color: var(--muted); }
body .mobile-navigation .mobile-menu-auth {
    margin: 0; border-top: 1px solid var(--line, #e2e8f0); padding: 16px 20px max(16px, env(safe-area-inset-bottom));
    background: var(--bg-soft, #fff);
}
body .mobile-navigation .mobile-menu-auth .header-auth-btn { display: flex; justify-content: center; width: 100%; min-height: 48px; border-radius: 12px; font-size: 15px; background: var(--blue, #3846b5); border-color: var(--blue, #3846b5); color: #fff; }
body .mobile-navigation .mobile-menu-auth .header-auth-btn:hover { background: var(--blue-deep, #29358f); color: #fff; transform: none; }
body .mobile-navigation .mobile-nav-empty { padding: 12px; color: var(--muted); font-size: 14px; }
body .mobile-navigation .mobile-nav-empty span { display: inline-block; margin-inline-start: 8px; font-size: 12px; }
body .mobile-navigation :is(a, button):focus-visible { outline: 2px solid var(--blue-soft); outline-offset: 2px; }
@media (min-width: 1025px) { body .mobile-navigation { display: none; } }
@media (prefers-reduced-motion: reduce) {
    body .mobile-navigation, body .mobile-navigation * { transition: none !important; }
}
