/* EasyBiz mobile navigation — the single authoritative drawer implementation. */
.eb-mobile-app-brand,
.eb-mobile-chevron { display: none; }

@media (max-width: 900px) {
  :root { --eb-mobile-header: 64px; --eb-mobile-drawer: min(336px, 90vw); }

  html.mobile-menu-open,
  body.mobile-menu-open {
    overflow: hidden !important;
    overscroll-behavior: none;
    touch-action: none;
  }

  #app > .menu-toggle {
    position: fixed !important;
    z-index: 4003 !important;
    top: calc(12px + env(safe-area-inset-top)) !important;
    left: 14px !important;
    width: 40px !important;
    height: 40px !important;
    margin: 0 !important;
    display: grid !important;
    place-content: center !important;
    gap: 4px !important;
    border: 1px solid #d6e2ef !important;
    border-radius: 10px !important;
    background: #fff !important;
    box-shadow: 0 4px 14px rgba(15, 38, 64, .1) !important;
  }
  #app > #menuToggle {
    z-index: 4003 !important;
    border-color: #123b5d !important;
    background: #123b5d !important;
    box-shadow: 0 5px 14px rgba(18,59,93,.24) !important;
  }
  #app > #menuToggle svg {
    display: block !important;
    width: 22px !important;
    height: 22px !important;
    fill: none !important;
    stroke: #fff !important;
    stroke-width: 2.4 !important;
    stroke-linecap: round !important;
    pointer-events: none !important;
  }

  .eb-mobile-app-brand {
    position: fixed !important;
    z-index: 4002 !important;
    top: env(safe-area-inset-top) !important;
    left: 0 !important;
    right: 0 !important;
    height: var(--eb-mobile-header) !important;
    padding: 0 112px 0 66px !important;
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    background: rgba(255,255,255,.97) !important;
    border-bottom: 1px solid #dce6ef !important;
    box-shadow: 0 2px 10px rgba(15, 38, 64, .06) !important;
    pointer-events: none !important;
  }
  .eb-mobile-app-brand > span {
    padding: 6px 8px;
    border-radius: 8px;
    background: #18ad79;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
  }
  .eb-mobile-app-brand div { min-width: 0; display: grid; line-height: 1.1; }
  .eb-mobile-app-brand b { color: #162b43; font-size: 14px; white-space: nowrap; }
  .eb-mobile-app-brand small { margin-top: 3px; color: #718196; font-size: 9px; white-space: nowrap; }

  #app > aside {
    position: fixed !important;
    z-index: 5000 !important;
    inset: 0 auto 0 0 !important;
    width: var(--eb-mobile-drawer) !important;
    min-width: 0 !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 0 !important;
    max-height: 100dvh !important;
    box-sizing: border-box !important;
    padding: 0 !important;
    overflow: hidden !important;
    display: block !important;
    background: #f5f9fd !important;
    border-right: 1px solid #cfddeb !important;
    box-shadow: 18px 0 44px rgba(15, 38, 64, .2) !important;
    transform: translate3d(-105%,0,0) !important;
    transition: transform .24s cubic-bezier(.2,.8,.2,1) !important;
    visibility: hidden !important;
  }
  html.mobile-menu-open #app > aside,
  body.mobile-menu-open #app > aside {
    transform: translate3d(0,0,0) !important;
    visibility: visible !important;
  }
  #app > aside > .brand,
  #app > aside > .sidebar-collapse-toggle { display: none !important; }

  #app > aside > nav {
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    overflow: hidden !important;
    color: #1c3650 !important;
    background: #f5f9fd !important;
    transform: none !important;
    box-sizing: border-box !important;
  }
  #app > aside .mobile-menu-head {
    position: static !important;
    min-height: 68px !important;
    padding: calc(12px + env(safe-area-inset-top)) 14px 12px !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    background: #fff !important;
    border-bottom: 1px solid #dce6ef !important;
    box-sizing: border-box !important;
    flex: 0 0 auto !important;
  }
  #app > aside .mobile-menu-head .mark {
    min-width: 52px !important;
    height: 34px !important;
    display: grid !important;
    place-content: center !important;
    border-radius: 9px !important;
    background: #18ad79 !important;
    color: #fff !important;
    font-size: 11px !important;
  }
  #app > aside .mobile-menu-head > div:nth-child(2) { display: grid !important; flex: 1; }
  #app > aside .mobile-menu-head b { color: #172c44 !important; font-size: 15px !important; }
  #app > aside .mobile-menu-head span { color: #718196 !important; font-size: 10px !important; }
  #app > aside #menuClose {
    min-width: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    border: 1px solid #d8e3ed !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: #29425b !important;
    font-size: 26px !important;
  }

  #app > aside .eb-mobile-drawer-body {
    position: static !important;
    inset: auto !important;
    min-height: 0 !important;
    padding: 14px 12px 24px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-gutter: stable;
    flex: 1 1 auto !important;
  }
  #app > aside .nav-section-label {
    margin: 4px 10px 7px !important;
    color: #718196 !important;
    font-size: 10px !important;
    letter-spacing: .14em !important;
  }
  #app > aside .nav,
  #app > aside .eb-govt-toggle {
    position: static !important;
    width: 100% !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 9px 12px !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    border: 1px solid transparent !important;
    border-radius: 10px !important;
    background: transparent !important;
    color: #314b66 !important;
    box-shadow: none !important;
    text-align: left !important;
  }
  #app > aside .nav:hover,
  #app > aside .eb-govt-toggle:hover { background: #eaf3fb !important; }
  #app > aside .nav.active {
    border-color: #cfe5f5 !important;
    background: #e1f2fd !important;
    color: #0878b5 !important;
  }
  #app > aside .nav-icon {
    width: 26px !important;
    min-width: 26px !important;
    height: 26px !important;
    display: grid !important;
    place-content: center !important;
    color: currentColor !important;
  }
  #app > aside .nav-label { flex: 1 !important; font-size: 14px !important; font-weight: 700 !important; }
  #app > aside .eb-mobile-accordion-group,
  #app > aside .eb-govt-group { width: 100% !important; display: block !important; }
  #app > aside .eb-mobile-chevron,
  #app > aside .eb-govt-chevron {
    margin-left: auto !important;
    display: inline-grid !important;
    place-content: center !important;
    transition: transform .18s ease !important;
  }
  #app > aside [aria-expanded="true"] > .eb-mobile-chevron,
  #app > aside [aria-expanded="true"] > .eb-govt-chevron { transform: rotate(180deg) !important; }
  #app > aside .billing-subnav[hidden],
  #app > aside .eb-govt-submenu[hidden] { display: none !important; }
  #app > aside .billing-subnav,
  #app > aside .eb-govt-submenu {
    position: static !important;
    inset: auto !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 4px 0 7px 38px !important;
    padding: 5px !important;
    display: grid !important;
    gap: 4px !important;
    border: 1px solid #d9e7f2 !important;
    border-radius: 10px !important;
    background: #fff !important;
    box-shadow: none !important;
  }
  #app > aside .billing-subnav button,
  #app > aside .eb-govt-submenu a {
    position: static !important;
    min-height: 42px !important;
    padding: 9px 10px !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: #f5f9fd !important;
    color: #294865 !important;
    text-decoration: none !important;
    font-size: 13px !important;
    font-weight: 650 !important;
  }

  #app > aside .mobile-menu-footer {
    position: static !important;
    inset: auto !important;
    min-height: 0 !important;
    box-sizing: border-box !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom)) !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 7px !important;
    border: 0 !important;
    border-top: 1px solid #dce6ef !important;
    border-radius: 0 !important;
    background: #fff !important;
    color: #344e68 !important;
    box-shadow: 0 -5px 16px rgba(15,38,64,.05) !important;
  }
  #app > aside .mobile-menu-footer .font-controls {
    grid-column: 1 / -1 !important;
    display: grid !important;
    grid-template-columns: repeat(3,1fr) !important;
    gap: 6px !important;
  }
  #app > aside .mobile-menu-footer .font-controls button {
    min-height: 36px !important;
    border: 1px solid #cee0ee !important;
    border-radius: 8px !important;
    background: #f5f9fd !important;
    color: #24435f !important;
  }
  #app > aside .mobile-menu-footer .font-controls button.active {
    border-color: #159f70 !important;
    background: #18ad79 !important;
    color: #fff !important;
  }
  #app > aside .mobile-menu-footer > span,
  #app > aside .mobile-menu-footer > b {
    grid-column: 1 / -1 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    font-size: 11px !important;
  }
  #app > aside .mobile-menu-footer > span { display: none !important; }
  #app > aside .mobile-menu-footer .link {
    min-height: 40px !important;
    margin: 0 !important;
    padding: 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid #d7e3ed !important;
    border-radius: 9px !important;
    background: #f7fafc !important;
    color: #284762 !important;
    font-size: 12px !important;
    font-weight: 700 !important;
  }
  #app > aside #mobileLogout { border-color: #f0d3d3 !important; color: #b53b3b !important; }

  #menuOverlay {
    position: fixed !important;
    z-index: 4990 !important;
    inset: 0 !important;
    display: block !important;
    pointer-events: none !important;
    opacity: 0 !important;
    background: rgba(14,31,49,.46) !important;
    backdrop-filter: blur(2px);
    transition: opacity .2s ease !important;
  }
  html.mobile-menu-open #menuOverlay,
  body.mobile-menu-open #menuOverlay { pointer-events: auto !important; opacity: 1 !important; }

  #app > main { width: 100% !important; min-width: 0 !important; margin-left: 0 !important; padding-top: var(--eb-mobile-header) !important; }
  #app > main > header { top: var(--eb-mobile-header) !important; }
}

@media (min-width: 901px) {
  .eb-mobile-app-brand { display: none !important; }
  #app > aside .eb-mobile-billing-group { display: contents; }
  #app > aside .billing-subnav[hidden] { display: flex; }
}

@media (prefers-reduced-motion: reduce) {
  #app > aside, #menuOverlay { transition: none !important; }
}
