.mobile-menu-toggle,.mobile-menu-scrim,.mobile-menu-links{display:none}

/* Neutralize legacy bottom-bar sidebar from styles.css so it never overlays cards.
   Hamburger/drawer owns mobile chrome; closed menu leaves only FAB peers. */
@media(max-width:720px){
  body .shell,
  body[data-theme] .shell{
    display:block!important;
  }
  body main,
  body[data-theme] main{
    width:100%!important;
    max-width:100%!important;
    margin:0 auto!important;
  }
  body[data-session="demo"] #connectBank,
  body[data-session="demo"] #connectAnother,
  body[data-session="demo"] #connectBankEmpty,
  body[data-session="demo"] #syncConnectBank,
  body[data-session="demo"] #plaidProductionCanaryConnect{
    display:none!important;
  }
}

/* Dual mobile FABs (Menu + Add) dock at max-width:720px.
   Keep them as independent viewport-fixed peers with a shared size/inset
   so they cannot share a containing box or collide on ~360–390 phones. */
@media(max-width:720px){
  :root{
    --cs-fab-size:56px;
    --cs-fab-inset:16px;
    --cs-fab-gap:12px;
    --cs-fab-bottom:max(var(--cs-fab-inset), env(safe-area-inset-bottom));
    --cs-fab-dock:calc(var(--cs-fab-size) + var(--cs-fab-bottom) + var(--cs-fab-gap));
  }
  main{padding-bottom:calc(var(--cs-fab-dock) + 24px)}
  body[data-theme] .sidebar,
  body .sidebar{
    position:fixed!important;
    z-index:20;
    inset:auto auto var(--cs-fab-bottom) var(--cs-fab-inset)!important;
    top:auto!important;
    left:var(--cs-fab-inset)!important;
    bottom:var(--cs-fab-bottom)!important;
    width:var(--cs-fab-size)!important;
    height:var(--cs-fab-size)!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
    overflow:visible!important;
    display:block!important;
    pointer-events:none;
  }
  .sidebar .brand,.sidebar .level-card,.sidebar .privacy-note,.sidebar>.app-legal-links{display:none}
  .mobile-menu-toggle{
    position:fixed;
    z-index:23;
    left:var(--cs-fab-inset);
    right:auto;
    bottom:var(--cs-fab-bottom);
    display:grid;
    place-items:center;
    width:var(--cs-fab-size);
    height:var(--cs-fab-size);
    min-width:44px;
    min-height:44px;
    padding:6px;
    border:2px solid rgba(255,255,255,.92);
    border-radius:18px;
    background:linear-gradient(145deg,#0b1735,#1a2f63);
    color:#fff;
    box-shadow:0 14px 32px rgba(9,26,65,.32);
    cursor:pointer;
    pointer-events:auto;
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
  }
  .mobile-menu-toggle-icon{font:800 22px/1 Manrope,sans-serif}
  .mobile-menu-toggle b{font:800 10px/1 Manrope,sans-serif;letter-spacing:.02em}
  .mobile-menu-scrim{position:fixed;z-index:20;inset:0;width:100%;height:100%;border:0;background:rgba(8,18,43,.38);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .18s ease}
  .sidebar nav .nav-cluster-separator{grid-column:1/-1;margin:4px 0 2px;border-top-color:rgba(157,177,224,.24)}
  .sidebar nav{position:fixed;z-index:22;left:12px;right:12px;bottom:var(--cs-fab-dock);display:grid;grid-template-columns:1fr;gap:8px;width:auto;max-height:calc(100dvh - (var(--cs-fab-dock) + 24px));margin:0;padding:14px;border:1px solid rgba(132,160,225,.28);border-radius:20px;background:linear-gradient(155deg,#101a39,#1a2c5e);box-shadow:0 22px 55px rgba(7,20,54,.38);overflow:visible;overscroll-behavior:contain;opacity:0;visibility:hidden;transform:translateY(12px) scale(.98);transform-origin:bottom left;pointer-events:none;transition:opacity .18s ease,transform .18s ease,visibility .18s}
  .sidebar.mobile-menu-open nav{opacity:1!important;visibility:visible!important;transform:none!important;pointer-events:auto!important}
  .sidebar.mobile-menu-open .mobile-menu-scrim{opacity:1;pointer-events:auto}
  .sidebar .nav-item,.sidebar .nav-item:not(.active){display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:9px;min-width:0;min-height:58px;padding:10px 12px;border:1px solid rgba(153,176,228,.16);border-radius:13px;background:rgba(255,255,255,.055);color:#e7edfb;text-align:left;font:800 14px/1.2 "DM Sans",sans-serif;box-shadow:none}
  .sidebar .nav-item span{width:28px;color:#72def4;font-size:20px;text-align:center}
  body[data-theme="cloud"] .sidebar .nav-item.active{border-color:rgba(103,225,247,.52);background:linear-gradient(135deg,rgba(59,101,224,.75),rgba(91,78,232,.7));box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
  .mobile-menu-links{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;margin-top:3px;padding:10px 4px 0;border-top:1px solid rgba(157,177,224,.18);box-sizing:border-box}
  .mobile-menu-links a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 8px;border-radius:10px;color:#c7d2ea;font-size:13px;font-weight:750;text-decoration:none;white-space:nowrap}
  .mobile-legal-links{display:none!important}
  body[data-theme] .sidebar .add-button,
  body .sidebar .add-button{
    position:fixed;
    z-index:23;
    left:auto;
    right:var(--cs-fab-inset);
    bottom:var(--cs-fab-bottom);
    display:grid !important;
    grid-template-rows:auto auto;
    place-items:center;
    align-content:center;
    gap:2px;
    width:var(--cs-fab-size);
    height:var(--cs-fab-size);
    min-width:44px;
    min-height:44px;
    margin:0;
    padding:6px;
    border:2px solid rgba(255,255,255,.92);
    border-radius:18px!important;
    background:linear-gradient(145deg,#73ddf5,#55c4e7);
    color:#10214c;
    box-shadow:0 14px 32px rgba(9,26,65,.32);
    font-size:0;
    pointer-events:auto;
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
  }
  body[data-theme] .sidebar .add-button::before,
  body .sidebar .add-button::before{content:"+";font-size:22px;line-height:1;font-weight:700}
  body[data-theme] .sidebar .add-button::after,
  body .sidebar .add-button::after{content:"Quick";font:800 9px/1 Manrope,sans-serif;letter-spacing:.02em}

  /* Menu sheet owns the bottom chrome — park Add so it cannot cover nav rows. */
  body[data-theme] .sidebar.mobile-menu-open .add-button,
  body .sidebar.mobile-menu-open .add-button{
    visibility:hidden;
    pointer-events:none !important;
  }
  .sidebar.mobile-menu-open .mobile-menu-toggle{
    pointer-events:auto;
  }
}

/* Narrow phones: keep opposite corners, shrink FABs so inset + gap always clear. */
@media(max-width:390px){
  :root{
    --cs-fab-size:52px;
    --cs-fab-inset:14px;
  }
  .sidebar nav{grid-template-columns:1fr;max-height:calc(100dvh - (var(--cs-fab-dock) + 20px))}
}
