/* UI-R1 mobile shell. Loaded last and intentionally inactive above 768px. */
.user-page .mobile-shell-menu-toggle,
.admin-page .mobile-shell-menu-toggle,
.user-page .mobile-shell-backdrop,
.admin-page .mobile-shell-backdrop {
  display: none !important;
}

@media (max-width: 768px) {
  body.home-page .nav {
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(16px) saturate(1.3);
    -webkit-backdrop-filter: blur(16px) saturate(1.3);
  }

  body.home-page .nav .container {
    width: 100%;
    padding: 0 12px;
  }

  body.home-page .nav-inner {
    height: 56px;
    gap: 8px;
  }

  body.home-page .nav-logo {
    flex: 1 1 auto;
    min-width: 0;
    gap: 8px;
    overflow: hidden;
    font-size: 15px;
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  body.home-page .nav-logo svg {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
  }

  body.home-page .nav-actions {
    flex: 0 0 auto;
    gap: 4px;
  }

  body.home-page .nav-user {
    min-width: 0;
    gap: 0 !important;
  }

  body.home-page .nav-user > span {
    display: none;
  }

  body.home-page .nav-user a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0 10px;
    border-radius: 4px;
    background: #f2f3f5;
    font-size: 13px;
    line-height: 20px;
    white-space: nowrap;
  }

  body.home-page #logoutBtn {
    width: 48px;
    height: 36px;
    padding: 0;
    border-width: 1px;
    border-radius: 4px;
    font-size: 0;
    white-space: nowrap;
  }

  body.home-page #logoutBtn::before {
    content: '退出';
    font-size: 13px;
  }

  body.home-page #loginBtn {
    height: 36px;
    padding: 0 12px;
    border-radius: 4px;
    font-size: 13px;
  }

  body.user-page,
  body.admin-page {
    width: 100%;
    min-width: 0;
  }

  body.user-page.mobile-shell-menu-open,
  body.admin-page.mobile-shell-menu-open {
    overflow: hidden;
  }

  .user-page .mobile-shell-menu-toggle,
  .admin-page .mobile-shell-menu-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    margin: 0;
    padding: 0;
    border: 1px solid #e5e6eb;
    border-radius: 4px;
    background: #fff;
    color: #1d2129;
    cursor: pointer;
  }

  .user-page .mobile-shell-menu-toggle:focus-visible,
  .admin-page .mobile-shell-menu-toggle:focus-visible {
    outline: 2px solid rgba(22, 100, 255, 0.24);
    outline-offset: 2px;
  }

  .user-page .mobile-shell-menu-toggle svg,
  .admin-page .mobile-shell-menu-toggle svg {
    width: 20px;
    height: 20px;
  }

  .user-page .top-nav-bar,
  .admin-page .top-nav-bar {
    position: sticky !important;
    inset: 0 auto auto 0 !important;
    z-index: 900 !important;
    display: flex !important;
    width: 100% !important;
    height: 56px !important;
    margin: 0 !important;
    padding: 0 12px !important;
    border-bottom: 1px solid #e5e6eb !important;
    background: rgba(255, 255, 255, 0.96) !important;
    box-shadow: none !important;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
  }

  .user-page .top-nav-left,
  .admin-page .top-nav-left {
    min-width: 0;
    gap: 10px !important;
  }

  .user-page .top-nav-home,
  .user-page .top-nav-sep,
  .admin-page .top-nav-home,
  .admin-page .top-nav-sep {
    display: none !important;
  }

  .user-page .top-nav-current,
  .admin-page .top-nav-current {
    overflow: hidden;
    color: #1d2129 !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 22px;
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  .user-page .top-nav-right,
  .admin-page .top-nav-right {
    flex: 0 0 auto;
    gap: 6px !important;
  }

  .user-page .top-nav-bell,
  .admin-page .top-nav-bell {
    min-width: 40px !important;
    min-height: 40px !important;
  }

  .user-page .top-nav-user,
  .admin-page .top-nav-user,
  .user-page .top-nav-username,
  .admin-page .top-nav-username {
    display: none !important;
  }

  .user-page .sidebar,
  .user-page.admin-sidebar-collapsed .sidebar,
  .admin-page .sidebar,
  .admin-page.admin-sidebar-collapsed .sidebar {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    z-index: 920 !important;
    display: flex !important;
    flex-direction: column !important;
    width: min(320px, calc(100vw - 48px)) !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    overflow: hidden !important;
    border-right: 1px solid #e5e6eb !important;
    border-bottom: 0 !important;
    background: #fff !important;
    box-shadow: 8px 0 28px rgba(29, 33, 41, 0.14) !important;
    transform: translateX(-102%);
    transition: transform 180ms ease-out;
  }

  .user-page.mobile-shell-menu-open .sidebar,
  .admin-page.mobile-shell-menu-open .sidebar {
    transform: translateX(0);
  }

  .user-page #sidebarTitle,
  .admin-page #sidebarTitle {
    flex: 0 0 56px !important;
    width: 100% !important;
    height: 56px !important;
    margin: 0 !important;
    padding: 17px 16px !important;
    overflow: hidden !important;
    color: #1d2129 !important;
    font-size: 17px !important;
    line-height: 22px !important;
    text-align: left !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
  }

  .user-page .menu,
  .user-page.admin-sidebar-collapsed .menu,
  .admin-page .menu,
  .admin-page.admin-sidebar-collapsed .menu {
    display: block !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 6px 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    scrollbar-width: thin;
    scroll-snap-type: none !important;
  }

  .user-page .menu > li,
  .user-page.admin-sidebar-collapsed .menu > li,
  .admin-page .menu > li,
  .admin-page.admin-sidebar-collapsed .menu > li {
    width: 100% !important;
    min-height: 44px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 10px 16px !important;
    overflow: visible !important;
    border-bottom: 0 !important;
    white-space: normal !important;
    scroll-snap-align: none !important;
  }

  .user-page .menu > li.active,
  .admin-page .menu > li.active {
    border-left: 3px solid #1664ff !important;
    border-bottom-color: transparent !important;
  }

  .user-page .menu > li:focus,
  .admin-page .menu > li:focus {
    outline: 2px solid rgba(22, 100, 255, 0.28);
    outline-offset: -2px;
  }

  .admin-page .menu .submenu,
  .admin-page.admin-sidebar-collapsed .menu .submenu {
    position: static !important;
    width: 100% !important;
    max-height: none !important;
    margin: 4px 0 0 !important;
    padding: 0 0 0 24px !important;
    overflow: visible !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .user-page .user-sidebar-tools {
    display: grid !important;
    flex: 0 0 auto !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 8px 12px 12px !important;
    overflow: visible !important;
    border-top: 1px solid #f2f3f5;
  }

  .user-page .user-sidebar-tool-card {
    flex: none !important;
    width: 100% !important;
    max-width: none !important;
  }

  .user-page .mobile-shell-backdrop,
  .admin-page .mobile-shell-backdrop {
    position: fixed;
    inset: 0;
    z-index: 910;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: rgba(29, 33, 41, 0.46);
    cursor: pointer;
  }

  .user-page .mobile-shell-backdrop:not([hidden]),
  .admin-page .mobile-shell-backdrop:not([hidden]) {
    display: block !important;
  }

  .user-page .main,
  .admin-page .main,
  .user-page.admin-sidebar-collapsed .main,
  .admin-page.admin-sidebar-collapsed .main {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 16px !important;
  }
}

@media (max-width: 420px) {
  .user-page .sidebar,
  .admin-page .sidebar {
    width: calc(100vw - 40px) !important;
  }
}
